【发布时间】:2018-04-29 17:54:17
【问题描述】:
我有一个使用 Cloud Firestore 的 iOS 应用,但在更新数据时遇到了问题。我的目标是将网址一一添加到字典中,但我得到的只是重写一个值。我应该如何使用 setData 和 updateData?尝试了不同的方法
storageRef.child("users/" + currentUser.value!.documentID + "/" + faceRef.documentID + ".jpg")
.putData(data!).observe(.success) { (snapshot) in
guard let downloadURL = snapshot.metadata?.downloadURL()?.absoluteString else { return }
let db = self.fsReference.document(self.currentUser.value!.documentID)
var dict = ["faces": ["": ""]]
dict["faces"] = ["newvalue\(downloadURL.hashValue)": downloadURL]
db.updateData(dict)
completion?()
这是我尝试过的。任何建议都会很好,在此先感谢!
UPD:尝试将我的字典移动到子集合,但在 .collection("newCollection").document("newdocument") 之后集合没有出现。可能是什么问题?
【问题讨论】:
-
嗨,马克斯。当您进行这样的更新时,您将最终“替换”该对象。解决方案可能是将 url 存储在子集合中?
-
感谢您的回复!目前子集合存在问题,当我执行
.collection("newcollection").document("newDocument")之类的操作时它们不会出现,当我放入数据时,数据库没有任何反应。你觉得可能是什么问题? -
您使用的是完整路径吗?如果您要将其保存在用户文档中,应如下所示:
users/${currentUserId}/urlCollection/${idOnNewDoc}--> 有意义吗? -
好吧,我最终想通了。代码中有一些方法可以设置模型并更新 Firestore。那不是我的代码,所以我遇到了这个困难)
标签: swift firebase google-cloud-firestore