@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上对用户进行身份验证。 (我做了 文档ID =用户ID),然后输入用户信息 到firebase数据库中进入一个ID也为 等于用户身份验证后的用户ID。现在我 我想做的是创建或获取对文档ID的引用 已经存储了一些用户信息,例如姓名,姓氏, 年龄...这样我以后可以在同一文档中添加/合并更多信息 名称,姓氏和年龄存储在下面。我就是这样 将信息合并到不同的视图控制器中
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")
}
}
我放在“ *******”的地方应该是
文档ID,因此我可以将此信息合并/添加到与该文档相同的文档中
其他用户的名称,姓氏和年龄所在的信息
已存储。
我向您展示的代码,以及之前询问的有关如何获取
文档ID,来自我在堆栈溢出的地方找到的代码,
有和我类似的问题。他正在尝试访问某些内容
他的文件,但我只是想创建一个参考
文档ID。
先前的代码形式:
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")
}
}
}
但是我不知道这段代码是否对我有帮助,我只是想可能
因为它也正在访问文档,所以这就是为什么
是我获取文档ID的答案。
所以基本上我的问题是,添加它后我需要做什么
我在本网站上找到的代码,或者如果我必须编写自己的代码,
这样我就可以获得对文档ID的引用,其中我的名字,姓氏
并且存储了Age,因此我可以将更多信息合并到该文档中
非常感谢!!!
答案 0 :(得分:0)
要打印文档ID,请执行以下操作:
let docRef = Firestore.firestore().collection("users").document(Auth.auth().currentUser?.uid ?? "")
// Get data
docRef.getDocument { (document, error) in
if let document = document, document.exists {
let dataDescription = document.data()
print(dataDescription?["firstname"])
print(document.documentID)
} else {
print("Document does not exist")
}
}
我强烈建议您花一些时间在Firestore documentation中,因为getting multiple documents from a collection下的内容对此有所说明