在iOS应用程序中将FirebaseUI直接登录到手机

在iOS应用程序中将FirebaseUI直接登录到手机,ios,firebase-authentication,firebaseui,Ios,Firebase Authentication,Firebaseui,我正在尝试在iOS应用程序中实现FirebaseUI,以进行电话身份验证。但是打开的UI显示“使用邮件登录”选项 我需要它直接进入手机登录页面- 如何在FirebaseUI中实现这一点。此外,在出现此视图之前,我如何填写电话号码字段?您应该在代码中的某个位置(可能在视图控制器中)创建一个类型为FUIAuth的对象 // Perhaps you made it by doing this. let authUI = FUIAuth.defaultAuthUI() // You should a

我正在尝试在iOS应用程序中实现
FirebaseUI
,以进行
电话身份验证
。但是打开的UI显示“使用邮件登录”选项

我需要它直接进入手机登录页面-


如何在FirebaseUI中实现这一点。此外,在出现此视图之前,我如何填写电话号码字段?

您应该在代码中的某个位置(可能在视图控制器中)创建一个类型为
FUIAuth
的对象

// Perhaps you made it by doing this.
let authUI = FUIAuth.defaultAuthUI()

// You should also have a `FUIPhoneAuth` object somewhere.
let phoneProvider = FUIPhoneAuth(authUI: authUI)

// This will suppress the "Sign in with mail button"
authUI.isSignInWithEmailHidden = true

// This will bypass that welcome screen altogether 
// (because there is only a single element in the array).
authUI.providers = [phoneProvider]
如果你已经知道电话号码,你可以这样做。假设
self
是呈现firebase ui的视图控制器

let phoneNumber = "+12345558888"
phoneProvider.signIn(withPresenting: self, phoneNumber: phoneNumber)

这将直接打开电话验证屏幕

if let authUI = FUIAuth.defaultAuthUI() {

        let phoneProvider = FUIPhoneAuth(authUI: authUI)

        authUI.delegate = self

        authUI.providers = [phoneProvider]

        authUI.signIn(withProviderUI: phoneProvider, presenting: self, defaultValue: nil)
}

应该从控制器调用。

让我们假设您有一个带有按钮的视图控制器来启动手机验证。这是应包含在按钮(obj-c)中的代码

// Perhaps you made it by doing this.
let authUI = FUIAuth.defaultAuthUI()

// You should also have a `FUIPhoneAuth` object somewhere.
let phoneProvider = FUIPhoneAuth(authUI: authUI)

// This will suppress the "Sign in with mail button"
authUI.isSignInWithEmailHidden = true

// This will bypass that welcome screen altogether 
// (because there is only a single element in the array).
authUI.providers = [phoneProvider]
下面的数组可能包含验证用户的不同选项(使用Facebook、google、电子邮件…),在这种情况下,我们只需要phone方法,但可能数组中还包含电子邮件方法

NSArray<id<FUIAuthProvider>> * providers = @[ [[FUIEmailAuth alloc] init],[[FUIPhoneAuth alloc]initWithAuthUI:[FUIAuth defaultAuthUI]]];
authUI.providers = providers;
这是显示多个选项的默认方式

//    UINavigationController *authViewController = [authUI authViewController];
//    [self presentViewController:authViewController animated:YES completion:nil];
}
//    UINavigationController *authViewController = [authUI authViewController];
//    [self presentViewController:authViewController animated:YES completion:nil];
}