繁体   English   中英

如何更新Firestore子集合字段

[英]how to update firestore subcollection field

我正在尝试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个

您要将字段路径的一部分传递给对doc()的调用。 那是行不通的,因为您需要(仅)将文档ID传递给doc 之后,您可以使用分隔路径段,从而为要更新的字段构建字段路径.

var value = {};
value[receiverId+"."+type] = bool;
this.afs.firestore
  .collection("books")
  .doc(senderId)
  .update(value)

另请参见有关更新嵌套对象中字段文档

基本上,数据库结构必须去收集,文档,收集,文档等

在文档中明确说明

文件存放在集合中,集合只是文件的容器。

集合包含文档,仅此而已。 它不能直接包含带有值的原始字段,也不能包含其他集合。

如果您可以共享有关所需结构的更多信息(例如,更完整的屏幕截图),则将有所帮助。 这个如何转换为正确嵌套的集合/文档设置的示例也可能会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM