【发布时间】:2019-10-16 14:29:45
【问题描述】:
我有一个集合,其文档如下所示:
count: number
first: timestamp
last: timestamp
first 值应该(几乎)在文档创建后永远不会改变。
在批量写入操作中,我正在尝试更新此集合中的文档,或创建那些尚不存在的文档。类似的东西
batch.setData([
"count": FieldValue.increment(someInteger),
"first": someTimestamp,
"last": someTimestamp
], forDocument: someDocumentRef, mergeFields: ["count","last"])
我的希望是,通过从 mergeFields 数组中排除 first,Firestore 将通过将 count 和 last 合并到现有文档或创建新文档来设置它,并且仅当它没有先前的值时才设置first(即,在此操作之前该文档不存在)。现在我很清楚事实并非如此,而是完全忽略了first。现在我想知道 Firestore 团队在这种情况下打算做什么。
我知道我可以通过事务来实现这一点,但这与我的批量写入不太吻合。交易是我唯一的选择,还是有更好的方法来实现这一点?
【问题讨论】:
-
这对于我们基本上放在每个文档上的“创建”时间戳字段来说将是一个很棒的功能。避免读取步骤会很棒。可悲的是,它今天似乎不存在。
标签: javascript firebase google-cloud-firestore