函数在集合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]
附加控制台图片:
答案 0 :(得分:1)
$([document.documentElement, document.body]).animate({
scrollTop: $(".temp-class").offset().top
}, 2000);
将新元素添加到数组字段。这就是为什么您看到一个新对象。
Firestore不提供使用数组项索引对其进行修改的更新操作。如果要按索引更新数组中的项目,则必须阅读文档,修改内存中的数组,然后将数组字段更新回文档。