startUi static method

Future<bool> startUi({
  1. required List<AuthUiProvider> items,
  2. required TosAndPrivacyPolicy tosAndPrivacyPolicy,
  3. bool autoUpgradeAnonymousUsers = false,
  4. AndroidOption androidOption = const AndroidOption(),
  5. WebAuthOption webAuthOption = const WebAuthOption(),
  6. EmailAuthOption emailAuthOption = const EmailAuthOption(),
})

Start Firebase Auth UI process.

Return true if login process is completed.

Implementation

static Future<bool> startUi({
  required List<AuthUiProvider> items,
  required TosAndPrivacyPolicy tosAndPrivacyPolicy,
  bool autoUpgradeAnonymousUsers = false,
  AndroidOption androidOption = const AndroidOption(),
  WebAuthOption webAuthOption = const WebAuthOption(),
  EmailAuthOption emailAuthOption = const EmailAuthOption(),
}) async {
  final providers = items.map((e) => e.providerName).join(',');
  try {
    final data = await _channel.invokeMethod<bool>(
      'startUi',
      <String, dynamic>{
        'providers': providers,
        'tosUrl': tosAndPrivacyPolicy.tosUrl,
        'privacyPolicyUrl': tosAndPrivacyPolicy.privacyPolicyUrl,

        /// anonymous
        'autoUpgradeAnonymousUsers': autoUpgradeAnonymousUsers,

        /// Android
        'enableSmartLockForAndroid': androidOption.enableSmartLock,
        'showLogoAndroid': androidOption.showLogo,
        'overrideThemeAndroid': androidOption.overrideTheme,

        /// Web
        'webPageTitle': webAuthOption.pageTitle,
        'webAuthenticationPath': webAuthOption.authenticationPath,

        /// EmailLink
        'emailLinkRequireDisplayName': emailAuthOption.requireDisplayName,
        'emailLinkEnableEmailLink': emailAuthOption.enableMailLink,
        'emailLinkHandleURL': emailAuthOption.handleURL,
        'emailLinkAndroidPackageName': emailAuthOption.androidPackageName,
        'emailLinkAndroidMinimumVersion':
            emailAuthOption.androidMinimumVersion,
      },
    );
    if (data == null) return false;

    return data;
  } on Exception catch (e) {
    debugPrint('flutter_auth_ui: error => $e');
    return false;
  }
}