我有一个集合,其文档看起来像这样:
count: number
first: timestamp
last: timestamp
该first
值应该(几乎)在文档创建后永远不会改变。
在批量写入操作中,我正在尝试更新此集合中的文档,或创建那些尚不存在的文档。就像是
batch.setData([
"count": FieldValue.increment(someInteger),
"first": someTimestamp,
"last": someTimestamp
], forDocument: someDocumentRef, mergeFields: ["count","last"])
我希望first
通过从数组中排除mergeFields
,Firestore 将设置count
并将last
其合并到现有文档中或创建一个新文档,并且first
仅在它没有先前值的情况下设置(即,在此操作之前文档不存在)。我现在很清楚,情况并非如此,而是first
完全被忽略了。现在我想知道 Firestore 团队在这种情况下打算做什么。
我知道我可以通过事务来实现这一点,但这与我的批量写入不太吻合。交易是我唯一的选择,还是有更好的方法来实现这一点?