我正在尝试更新Firestore中文档的某些字段。下面是代码。但这不起作用。请帮帮我!
@IBAction func btnGoBack(_ sender: Any) {
if usersPaid != true {
let db = Firestore.firestore()
db.collection("users").document("m8FdPX4zVJ77ZodP8h0T").updateData([
"titlePage": titlePageOnChanged!,
"endPage": endPageOnChanged!,
"pageNumber": pageNumberOnChanged!,
"passCode": passCodeOnChanged!
]) { err in
if let err = err {
print("Error updating document: \(err)")
} else {
print("Document successfully updated")
}
}
}
performSegue(withIdentifier: "goBack", sender: nil)
}
下面是firestore的屏幕截图。
答案 0 :(得分:1)
您必须将document id
从图片更改为Firestore document id
:
document("uDo1jHFTbMJSq4V5146X")
通常
您的代码必须类似于db.collection("users").document(yourUserId).updateData
自动写yourUserId
比手工写要好:)
答案 1 :(得分:0)
您的问题在这里:
db.collection("users").document("userId").updateData([
具体在这里:
document("userId")
"userId"
作为字符串不是文档ID。根据照片显示的文档ID为uDo1。...
答案 2 :(得分:0)
我用下面的代码弄清楚了:
db.collection("users")
.whereField("userEmail", isEqualTo: userEmail!)
.getDocuments() { (querySnapshot, err) in
if err != nil {
print("Error updating document: \(err)")
} else if querySnapshot!.documents.count > 0 {
let document = querySnapshot!.documents.first
document!.reference.updateData([
"titlePage": titlePageOnChanged!,
"endPage": endPageOnChanged!,
"pageNumber": pageNumberOnChanged!,
"passCode": passCodeOnChanged!
])
}
}