这应该从结果中获取用户ID!.user.uid并将其存储为变量或函数,以便我再次使用它。 问题是我不知道如何获取它来存储此函数之外的值。 Ive试图将其存储到初始按钮函数外部的变量中,并且Ive还尝试通过删除使它成为无效对象的一部分代码来将其返回到函数外部。我不确定我需要去哪里/我可以尝试做些什么来解决此问题。 如果有人知道如何从此代码中检索我的文档ID,将不胜感激
@IBAction func NextButtonTapped(_ sender: Any) {
//validate the fileds
let Error = validateFields()
if Error != nil {
// there is somthing wrong with the fields show error message
showError(Error!)
}
else {
// create cleaned versions of the data
let Password = PasswordTextField.text!.trimmingCharacters(in: .whitespacesAndNewlines)
let Email = EmailTextField.text!.trimmingCharacters(in: .whitespacesAndNewlines)
let Firstname = FirstnameTextField.text!.trimmingCharacters(in: .whitespacesAndNewlines)
let Lastname = LastnameTextField.text!.trimmingCharacters(in: .whitespacesAndNewlines)
let Age = AgeTextField.text!.trimmingCharacters(in: .whitespacesAndNewlines)
// create the user
Auth.auth().createUser(withEmail: Email, password: Password) { (results, Err) in
// check for errors
if Err != nil {
// there was an error creating the user
self.showError("Error creating user")
}
else {
// user was created succesfully store first and last name
let db = Firestore.firestore()
db.collection("users").document(results!.user.uid).setData(["first name":Firstname, "last name":Lastname, "age":Age, "uid":results!.user.uid]) { (Error) in
if Error != nil {
// show error message
self.showError("error saving user data")
}
//showing users document id
}
//transition to the home screen
self.transitionToHome()
}
}
}
}
我不知道该怎么做会很棒,
非常感谢您!!!!
答案 0 :(得分:1)
像这样在IBAction函数之外定义一个uid变量。
var uid: String? = nil
然后,在createUser函数中
self.uid = results!.user.uid