我有一个集合,其文档如下所示:
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团队针对这种情况打算做什么。
我知道我可以通过事务来实现这一点,但是这与我的批处理写入并不太紧密。是我唯一的选择,还是有更好的方法来实现这一目标?