@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 user info
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")
}
}
//transition to the home screen
self.transitionToHome()
}
}
}
}
Итак, в основном здесь я аутентифицирую пользователя на firebase. (Я сделал идентификатор документа = идентификатором пользователя), затем я ввожу информацию о пользователях в базу данных firebase в документ, где его идентификатор также равен идентификатору пользователя, когда они прошли аутентификацию. Теперь я пытаюсь создать или получить ссылку на идентификатор документа, где некоторая информация о пользователях уже хранится, например, имя, фамилия, возраст ... поэтому я могу позже добавить / объединить дополнительную информацию в тот же документ имя, фамилия и возраст хранятся под. Вот как я пытаюсь объединить информацию в другом контроллере представления.
db.collection("users").document(*******).setData(["middle
Name":Middlename, "favourite colour":Favouritecolour], merge: true)
{ (Error) in
if Error != nil {
// show error messgae
self.showError("error saving user data")
}
}
Где я поставил «*******», я должен ссылаться на идентификатор документа, чтобы я мог объединить / добавить эту информацию в тот же документ, что и информация о других пользователях, где хранятся имя, фамилия и возраст.
Код, который я вам показал и спросил ранее о том, как получить идентификатор документа, был кодом, который я нашел при переполнении стека, где у них была такая же проблема, как у меня. Он пытался получить доступ к чему-то из своего документа, но я просто пытаюсь создать ссылку на идентификатор документа.
Кодовая форма ранее:
func getDocument() {
//get specific document from current user
let docRef =
Firestore.firestore().collection("users").document(Auth.auth().currentUs er?.uid ?? "")
//get data
docRef.getDocument { (document, Error) in
if let document = document, document.exists {
let dataDescription = document.data()
print(dataDescription?["uid"])
} else {
print("Document does not exist")
}
}
}
Но я не знаю, есть ли этот код поможет мне, я просто подумал, что это может быть, потому что он также обращается к документу, поэтому я подумал, что это может быть моим ответом на получение идентификатора документа.
Итак, в основном мой вопрос заключается в том, что мне нужно сделать, чтобы добавить его в код, который я нашел на этом сайте, или если мне нужно написать свой собственный код, чтобы я мог получить ссылку на идентификатор документа, где хранятся мое имя, фамилия и возраст, чтобы я мог добавить дополнительную информацию в этот документ
Большое спасибо !!!