仅当文档不存在时,如何才能创建和触摸它?

时间:2019-10-25 15:31:17

标签: firebase google-cloud-firestore

如果我的Firestore数据库中有数据,我希望它在创建新文档时失败,并且绝对不要覆盖或发送对该文档的任何更新。

我正在分批执行这些操作,所以我不会让任何批次失败或杀死整个批次。

这是我尝试过/排除的内容:

batch.update-由于更新数据而被排除 batch.set-排除其默认值是覆盖数据 batch.set...{merge: true}-排除,因为它将覆盖我已经拥有的所有字段 batch.create-这似乎很有希望,但是当文档已经存在时失败

let batch = db.batch()
...
batch.xyz(refToCreateOnly, Data) // this should be successful either way such that it does not kill the batch, and only updates if the ref does not exist
...
await batch.commit()

这是进行交易的最佳/可能唯一方法吗?

1 个答案:

答案 0 :(得分:0)

是的,您唯一的选择是在添加文档之前使用事务来验证该文档不存在。