Swift3 iOS -Firebase FIREmailPasswordAuthProvider不工作

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

我正在使用电子邮件和密码来validation用户。 当用户更改他们的电子邮件时,我正在使用下面的方法,一切工作正常:

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

现在,我更新我得到错误信息

types'String'的值没有成员'凭证'

我看了文档 ,它说使用下面的方法:

在这里输入图像说明

问题是我得到相同的确切的错误:

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

types'String'的值没有成员'凭证'

我下面的原始代码

 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 }) } 

我究竟做错了什么?

耽误

FIREmailAuthProviderID是一个包含auth提供者id的常量,并且是一个string(在FB 4中为EmailAuthProviderID)。 没有证书function,这就是为什么你得到这个错误。

以下是指向Firebase 4迁移指南的链接

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

EmailAuthProvider.credential(带电子邮件:string,密码:string) – > AuthCredential

20171014编辑:更新的链接到最新的迁移指南。

我没有使用fireBase的这个function,但是看起来这个链接可能有帮助

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

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

希望它能帮助你:)