“‘AuthDataResult’类型的值没有成员‘uid’";错误 [英] "Value of type 'AuthDataResult' has no member 'uid'" error
问题描述
有人可以帮我解决这个问题吗?第一个错误是类型 'authdataresult' 的值没有成员 'uid'".
Can someone help me about this issue? The first error was "value of type 'authdataresult' has no member 'uid'".
Auth.auth()?.signIn(withEmail: email, password: password, completion:
所以我删除了问号来解决问题,并且成功了!但在那之后,另一个错误出现了,它说'AuthDataResult'类型的值没有成员'uid'".我知道,这很烦人.
So I removed the question mark to resolve the problem and it worked! But after that, another error came and it said "Value of type 'AuthDataResult' has no member 'uid'". I know, it's irritating.
self.userUid = user.uid
哦,还有另一个错误,它在我的项目中存在了很长时间,所以现在我忽略了它,但是如果有人知道如何修复它,请告诉我.错误是只能声明实例方法@ibaction".
And oh, there's another error and it's been in my project for a very long time so now i'm ignoring it but then if someone knows how to fix it please let me know. The error is "only instance methods can be declared @ibaction".
@IBAction func signInTapped(_ sender: Any) {
我不知道为什么,但可能 3 个错误是相关的.我不知道.帮助.所以现在我又被卡住了.这是整个混乱的编码内容.
I don't know why but maybe the 3 errors are connected. I don't know. Help. So now I'm stuck again. Here is the whole messed up coding stuff.
import UIKit
import Firebase
class ViewController: UIViewController {
@IBOutlet weak var emailField: UITextField!
@IBOutlet weak var passwordField: UITextField!
var userUid: String!
func goToCreateUserVC(){
performSegue(withIdentifier: "SignUp", sender: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "SignUp" {
if let destination = segue.destination as? userVC {
if userUid != nil {
destination.userUid = userUid
}
if emailField.text != nil {
destination.emailField = emailField.text
}
if passwordField.text != nil {
destination.passwordField = passwordField.text
}
}
}
@IBAction func signInTapped(_ sender: Any) {
if let email = emailField.text, let password = passwordField.text {
Auth.auth().signIn(withEmail: email, password: password, completion: { (user,error) in
if error == nil {
if let user = user {
self.userUid = user.uid
self.goToCreateUserVC()
}
} else {
self.goToCreateUserVC()
}
});
}
}
}
}
就像我发誓的那样,我试图修复它,然后突然出现了 9 个错误.顺便说一下,我使用的是 Xcode 9、Swift 4,并且我的 Cocoapods 是最新的.对于那些编辑、评论或判断问题的人,请这不是一个重复的问题.它们是 2 个不同的错误.
Like I swear, I tried to fix it and then 9 errors just popped out. By the way, I'm using Xcode 9, Swift 4, and my Cocoapods are up-to-date. To those all around people who edit, comment, or judge questions, please this is not a duplicate question. They are 2 different errors.
推荐答案
Google 似乎在 5.0.0 更新中对 Firebase Auth 进行了一些更改.这对我有用:
It seems that Google has made some changes to Firebase Auth with the 5.0.0 update. This worked for me:
self.userUid = user.user.uid
我不确定更改的重点是什么,但它仍然完全相同.
I'm not sure what was the point of the change but it still works exactly the same.
这篇关于“‘AuthDataResult’类型的值没有成员‘uid’";错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!