如何解决从iOS上的FirebaseUI身份验证提示中删除“名字和姓氏”字段
我已经在我的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,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)
}
解决方法
原来,我只需要在初始化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,FUIFacebookAuth()
]
authUI?.providers = providers
}
let authViewController = authUI!.authViewController()
self.present(authViewController,animated: true,completion: nil)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。