【发布时间】:2019-08-28 18:48:48
【问题描述】:
我无法让数组联合或增量在 firebase 云函数中正常工作。
return docRef.update({
object: {
count: admin.firestore.FieldValue.increment(1),
list: admin.firestore.FieldValue.arrayUnion({
space_id: newData.date_id,
user: {
displayName: "john doe"
}
})
}
当函数运行时,它只是覆盖列表数组中的现有数据,并且计数始终设置为 1,即使它当前存在并且是数字类型。
【问题讨论】:
-
你能分享你的文档数据模型吗?您的文档中有
object字段吗?另外,如果我没记错的话,arrayUnion 不适用于嵌套数组。 -
是的,有一个对象字段,更新工作不如预期。它只会覆盖数组中的现有数据,而不是追加新数据。增量也不起作用,并且始终设置为 1。如果是嵌套数组问题,我应该在日志中看到类似的内容。未处理的拒绝 (FirebaseError):使用无效数据调用函数 FieldValue.arrayUnion()。不支持嵌套数组
-
您可以在更新前后的文档问题中添加屏幕截图吗?
-
仅供参考,我刚刚尝试使用网页中的 JavaScript SDK。
arrayUnion似乎工作,但不是object地图中的增量。如果您在对象之外放置另一个count字段(例如count1),则增量有效。 -
arrayUnion 是使用一个对象还是一个简单的字符串?你能发布你刚刚测试的代码吗?
标签: node.js firebase google-cloud-firestore google-cloud-functions firebase-admin