我已经在我的iOS应用中内置了FirebaseUI Auth,但是我想从电子邮件身份验证提示中删除“姓氏”字段。该库节省了大量时间,但是我的应用程序不需要用户提供此信息。
我查看了documentation,并在Stack Overflow上找到了有关此库的Web版本的一些similar posts,但是我在修改要修改的字段时遇到了麻烦在iOS库中显示用于电子邮件身份验证。在另一篇文章中,最重要的答案是可以在该库中修改requireDisplayName属性。
对于iOS库,我尝试创建电子邮件授权提供程序的实例并更改它的requireDisplayName属性,但出现错误: “无法分配给属性:'requireDisplayName'是一个只读属性”。
我会以错误的方式处理吗?还是目前似乎不存在此功能?解决此问题的合理方法是什么—分叉并删除使该属性变为只读的所有内容?
func presentAuthController() {
let authUI = FUIAuth.defaultAuthUI()
// You need to adopt a FUIAuthDelegate protocol to receive callback
authUI?.delegate = self
let emailAuth = FUIEmailAuth()
emailAuth.requireDisplayName = false
if #available(iOS 13.0, *) {
let providers: [FUIAuthProvider] = [
emailAuth,
FUIGoogleAuth(),
FUIFacebookAuth(),
FUIOAuth.appleAuthProvider()
]
authUI?.providers = providers
} else {
let providers: [FUIAuthProvider] = [
emailAuth,
FUIGoogleAuth(),
FUIFacebookAuth()
]
authUI?.providers = providers
}
let fwefwef = FUIEmailAuth()
// FIXME: Privacy policy
// authUI?.privacyPolicyURL =
// authUI?.tosurl
let authViewController = authUI!.authViewController()
self.present(authViewController, animated: true, completion: nil)
}
答案 0 :(得分:0)
原来,我只需要在初始化emailAuth对象时定义requireDisplayName属性。
func presentAuthController() {
let authUI = FUIAuth.defaultAuthUI()
// You need to adopt a FUIAuthDelegate protocol to receive callback
authUI?.delegate = self
let settings = ActionCodeSettings()
let emailAuth = FUIEmailAuth(
authAuthUI: authUI!,
signInMethod: EmailPasswordAuthSignInMethod,
forceSameDevice: false,
allowNewEmailAccounts: true,
requireDisplayName: false,
actionCodeSetting: settings
)
if #available(iOS 13.0, *) {
let providers: [FUIAuthProvider] = [
emailAuth,
FUIGoogleAuth(),
FUIFacebookAuth(),
FUIOAuth.appleAuthProvider()
]
authUI?.providers = providers
} else {
let providers: [FUIAuthProvider] = [
emailAuth,
FUIGoogleAuth(),
FUIFacebookAuth()
]
authUI?.providers = providers
}
let authViewController = authUI!.authViewController()
self.present(authViewController, animated: true, completion: nil)
}