在iOS应用程序中将FirebaseUI直接登录到手机
我正在尝试在iOS应用程序中实现在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
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];
}