更新数组中的对象-Firebase函数

时间:2020-06-09 19:47:46

标签: firebase google-cloud-firestore

函数在集合logs中进行写操作时执行,它检查集合totals中是否存在doc。如果doc存在,它将尝试使用数组 [0] 上的number更新number+1对象。

这是我的代码:

...//some code
var washingtonRef = admin.firestore().collection('totals').doc(entryDate_show);
        washingtonRef.get().then((doc: any)=> {
          if (doc.exists) {
            console.log("doc found");
  console.log("Document data:", doc.data());
  washingtonRef.update({
    [auth_ID]: admin.firestore.FieldValue.arrayUnion(
      { number: doc.data().number+1,  // here it is trying to do +1
        fullname: fullname, 
        authid: auth_ID },
      )
  });
...//some code

问题:它没有按预期工作

在数组中,它将添加具有 number:NaN

的新对象[1]

预期的行为:数字:2 [0]

附加控制台图片:

enter image description here

1 个答案:

答案 0 :(得分:1)

$([document.documentElement, document.body]).animate({ scrollTop: $(".temp-class").offset().top }, 2000); 将新元素添加到数组字段。这就是为什么您看到一个新对象。

Firestore不提供使用数组项索引对其进行修改的更新操作。如果要按索引更新数组中的项目,则必须阅读文档,修改内存中的数组,然后将数组字段更新回文档。