我正在尝试update
在Firestore中的一个字段,但找不到正确的呼叫:
changeAlertState(senderId, receiverId, alertType, bool){
let type = alertType == 'toBe' ? 'toBeAlerted' : 'toAlert';
this.afs.firestore
.collection("books")
.doc(senderId + '/' + receiverId)
.update({
[type]: bool
})
.then(() => {
console.log("Contact " + receiverId + " alert successfully updated!");
});
}
我收到此错误:
FirebaseError:[code = invalid-argument]:无效的文档引用。文档引用必须具有偶数个段,但是book / 33KlbrBypXMe888vpO7dXgDVrfY2 / hLh7Ao7IABZBukEpGFK1I8lq1rx1包含3
答案 0 :(得分:1)
您要将字段路径的一部分传递给对doc()
的调用。那将行不通,因为您需要(仅)将文档ID传递到doc
中。之后,您可以使用.
var value = {};
value[receiverId+"."+type] = bool;
this.afs.firestore
.collection("books")
.doc(senderId)
.update(value)
答案 1 :(得分:0)
基本上,数据库结构必须进行收集,文档,收集,文档等
这是explicitly stated in the documentation:
文档存在于集合中,集合只是文档的容器。
和
集合包含文档,仅此而已。它不能直接包含带有值的原始字段,也不能包含其他集合。
如果您可以共享有关所需结构的更多信息(例如,更完整的屏幕截图),则将有所帮助。 This example关于如何转换为正确嵌套的集合/文档设置也可能有帮助。