文档ID检索

时间:2020-06-17 01:11:53

标签: swift firebase google-cloud-firestore

这应该从结果中获取用户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()
            }
        }
    }
}

我不知道该怎么做会很棒,

非常感谢您!!!!

1 个答案:

答案 0 :(得分:1)

像这样在IBAction函数之外定义一个uid变量。

var uid: String? = nil

然后,在createUser函数中

self.uid = results!.user.uid