我是swift的新手,我正在尝试使用多个视图制作注册表单。问题是在调用 Auth.auth()。currentUser?.uid 之后 我在每个视图中得到一个不同的String,无法继续在一个特定的UID上工作。我做错了什么?
我正在使用firebase函数createUser创建用户:
Auth.auth().createUser(withEmail: emailField.text!, password:
passField.text!, completion: { (user, error) in
if let error = error {
print(error)
}
if let user = user {
let userInfo: [String : Any] = ["uid": UserModel().getUID(),
"username": self.usernameField.text!, "avatar_icon" : ""]
self.ref.child("users").child(user.uid).setValue(userInfo)
}
})
我已经尝试创建一个包含该特定字符串的模型类,但是会得到相同的错误结果。
import Foundation
import Firebase
class UserModel {
var userID : String
init() {
self.userID = (Auth.auth().currentUser?.uid)!
}
func getUID() -> String {
return self.userID
}
}
我的第一个注册视图控制器是Register1ViewController,我将调用 UserModel.init(),将来使用 UserModel()。getUID()获取uid查看控制器。
答案 0 :(得分:0)
在firebase中,每个经过身份验证的用户只有一个“唯一”uID,如您所知。因此,当您以用户身份登录时,您应该在查询时始终获得相同的uID。从这里很难说这个,因为你提供了这段代码的一小部分。你应该提供更多来得到答案。
编辑: 看起来您每次活动开始时都在调用createuser。这意味着每次运行代码时都要创建另一个用户。
Auth.auth()。currentUser?.uid
返回不同的uID。您应该注册一次并在其他时间登录。你可以查看下面的教程。但不要只看片段,打开github代码。