【发布时间】:2021-04-29 16:22:12
【问题描述】:
我有这两个文档 ID(我以后还会有更多)
在我的代码的某些部分中,当用户点击表格视图单元格时,我正在使用以下代码更新我的 Firebase:
let dbCollection = K.FStore.db.collection(K.FStore.User.UsersCollectionName).document("EMSce9qnfNnPmn8JBobn")
if let textFieldText = textField.text {
dbCollection.updateData([
self.userDataInsideTableViewKeysArray[indexPath.row] as! String : textFieldText
]){ err in
if let err = err {
print("Error updating document: \(err)")
} else {
print("Document successfully updated")
}
}
}
我有一个应用程序,当用户使用 firebase 提供的电子邮件和密码身份验证功能注册时,我会创建一个数据库集合,其中包含该唯一电子邮件以及其他一些数据(性别、年龄、电话号码......)文档 ID是随机生成的,如果我在它们之间循环,我可以访问所有文档 ID,但是我想要这个特定文档的文档 ID,以便我可以更新它,我想用 document(documentID) 替换 document("EMSce9qnfNnPmn8JBobn")我有多个用户
【问题讨论】:
-
1) 您(以及 Firebase 如何)知道需要更新哪些文档? IE。文档中标识用户属于什么? 2)使用用户的UID作为文档ID的用户配置文件是惯用的。我强烈建议您更改数据以执行此操作,在这种情况下,您可以通过以下方式获取当前用户的文档:
K.FStore.db.collection(K.FStore.User.UsersCollectionName).document(Auth.auth().currentUser.uid) -
感谢您的支持。对于第一个问题,这正是我要问的原因,老实说,我不知道。每个用户的电子邮件地址都是唯一的。我不知道这是否有帮助。至于第二个问题,当我使用 K.FStore.db.collection(K.FStore.User.UsersCollectionName).addDocument(data:["Name" : name ...]) 创建集合时,documentID 是随机生成的,如何将其更改为用户的UID?
-
2) 请参阅firebase.google.com/docs/firestore/manage-data/… 中的第一个示例,了解如何使用 (
setDocument) 自己指定文档 ID。另请参阅stackoverflow.com/a/60418826 1)如果您知道文档中的某些独特内容,则可以使用查询来查找文档:firebase.google.com/docs/firestore/query-data/… -
我在下面的回答中写了一个更冗长的版本。
标签: swift firebase google-cloud-firestore