FirebaseAuth 升级 iOS 后电子邮件登录选项消失

Posted

技术标签:

【中文标题】FirebaseAuth 升级 iOS 后电子邮件登录选项消失【英文标题】:Email login option gone after FirebaseAuth upgrade iOS 【发布时间】:2019-07-03 13:13:48 【问题描述】:

我突然不再在登录页面上看到电子邮件选项。它一直在那里,但自从升级它现在就消失了!

这是我声明提供者的方式:

   let providers: [FUIAuthProvider] = [
        FUIGoogleAuth(),
        FUIFacebookAuth(),
        FUITwitterAuth(),
        FUIPhoneAuth(authUI:FUIAuth.defaultAuthUI()!)
    ]

我没有看到任何新的 EmailAuth。显然它一直是默认的,现在它消失了,我找不到任何更改通知。

编辑:

尝试添加:

   let providers: [FUIAuthProvider] = [
        FUIEmailAuthProvider(), <======  compile error
        FUIGoogleAuth(),
        FUIFacebookAuth(),
        FUITwitterAuth(),
        FUIPhoneAuth(authUI:FUIAuth.defaultAuthUI()!)
    ]

但出现此错误:

'FUIEmailAuthProvider' 无法构造,因为它没有可访问的初始化程序

【问题讨论】:

据我所知,您在release 6.0 of FirebaseUI for ios 中启用/禁用电子邮件登录的方式发生了变化。你用的是什么版本? @FrankvanPuffelen 6.1.0...感谢您的链接,但现在无法编译 【参考方案1】:

首先需要:

pod 'FirebaseUI/Email'

然后添加:FUIEmailAuth(),

【讨论】:

【参考方案2】:

如果您将FUIEmailAuthProvider() 替换为FUIEmailAuth() 会怎样;

let providers: [FUIAuthProvider] = [
  FUIEmailAuth(),
  FUIGoogleAuth(),
  FUIFacebookAuth(),
  FUITwitterAuth(),
  FUIPhoneAuth(authUI: FUIAuth.defaultAuthUI()),
]

并将以下内容添加到Podfile:

pod 'FirebaseUI/Auth'

pod 'FirebaseUI/Email'
pod 'FirebaseUI/Google'
pod 'FirebaseUI/Facebook'
pod 'FirebaseUI/Twitter'
pod 'FirebaseUI/Phone'

根据:Using FirebaseUI for Authentication

【讨论】:

给出:使用未解析的标识符“FUIEmailAuth”;您的意思是“FUIGoogleAuth”吗? 是的,我在下面发表了另一条评论。必须先安装 pod。【参考方案3】:

实际上它在 iOS 的 Firebase 文档中没有正确描述。

您必须添加 pod pod 'FirebaseUI/Email',然后:

    导入 FirebaseUI 包括 FUIEmailAuth() 作为提供者

这将触发电子邮件登录。

【讨论】:

以上是关于FirebaseAuth 升级 iOS 后电子邮件登录选项消失的主要内容,如果未能解决你的问题,请参考以下文章

Swift iOS Firebase - 如果FirebaseAuth.FIRUser对象不是nil,它上面的.email怎么可能返回nil?

Firebase Auth - 更新用户的电子邮件后,Firebase Auth 会注销用户

创建 FirebaseAuth 实例创建并使用电子邮件和密码登录时收到错误

如何通过 iOS(swift)将 Firebase Auth 与 MySQL DB 同步?

Firebase Auth -> 使用 signInWithCustomToken 创建的用户没有电子邮件地址

FirebaseAuth 期间 iOS 项目复制崩溃