簡體   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