Получение идентификатора документа - PullRequest
0 голосов
/ 17 июня 2020

это должно взять идентификатор пользователя из результата! .User.uid и сохранить его как переменную или функцию, чтобы я мог использовать его снова. проблема в том, что я не знаю, как заставить его хранить значение вне этой функции. Айв попытался сохранить его в переменной вне функции начальной кнопки, а также попытался вернуть его за пределы функции, удалив часть кода, из-за которой она стала недействительной. Я не уверен, куда мне нужно идти / что еще я могу попробовать и сделать, чтобы решить эту проблему. Если кто-нибудь знает, как мне получить идентификатор моего документа из этого кода, ваша помощь будет очень признательна

@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 Ответ

1 голос
/ 18 июня 2020

Определите переменную uid вне функции IBAction следующим образом.

var uid: String? = nil

Затем в функции createUser

self.uid = results!.user.uid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...