Swift3 iOS -Firebase FIREmailPasswordAuthProvider 不工作

Swift3 iOS -Firebase FIREmailPasswordAuthProvider Not Working

我刚刚将我的 Firebase Cocoapods 从 3.15.0 升级到 4.0.4,并将 FirebaseAuth Cocoapods 从 3.1.1 升级到 4.0.0。

我正在使用电子邮件和密码对用户进行身份验证。当用户更改他们的电子邮件时,我使用了下面的这种方法,一切正常:

FIREmailPasswordAuthProviderID.credential(withEmail: emailTextField.text!, password: passwordTextField.text!)

更新后收到错误消息

Value of type 'String' has no member 'credential'

我看了docs,上面说要用下面的方法:

问题是我得到了完全相同的错误:

FIREmailAuthProviderID.credential(withEmail: emailTextField.text!, password: passwordTextField.text!)

Value of type 'String' has no member 'credential'

下面是我的原码

import Firebase
import FirebaseAuth

let user: User?

let credential = FIREmailPasswordAuthProviderID.credential(withEmail: emailTextField.text!, password: passwordTextField.text!)

        if let user = user{
            user.reauthenticate(with: credential, completion: {
                (error) in
                if error != nil{
                    //...do something
                    return
                }
                //...do something else
            })
        }

我做错了什么?

我还没有使用过 fireBase 的这个功能,不过看来这个 link 可能会有帮助

https://firebase.google.com/docs/reference/ios/firebaseauth/api/reference/Classes/FIREmailAuthProvider

我认为您需要使用 EmailAuthProviderID 而不是 FIREmailAuthProviderID。在 Firebase 4.0 中不再使用 FIR 后缀。

希望对你有帮助:)

撑起[=13​​=]

FIREmailAuthProviderID 是一个常量,包含 auth providers id 并且是一个字符串(在 FB 4 中是 EmailAuthProviderID)。没有凭证功能,这就是您收到该错误的原因。

这是 link 到 Firebase 4 Migration Guide

新格式(和正确的函数调用)是

EmailAuthProvider.credential(withEmail email: String, password: String) -> AuthCredential

20171014 编辑:已将 link 更新为最新的迁移指南。