【问题标题】:Google firestore rest API: How to create documents within a transactionGoogle firestore rest API:如何在事务中创建文档
【发布时间】:2021-10-07 16:52:18
【问题描述】:
使用事务引用,我可以通过创建Write 对象的数组/列表然后执行CommitRequest 来更新多个文档。
但是我找不到在事务中创建新文档的方法? firestoreApi.projects.databases.documents.createDocument(...) 不提供 transaction 参数。 Write 似乎用于更新文档而不是创建新文档。
【问题讨论】:
标签:
rest
google-cloud-platform
google-cloud-firestore
transactions
【解决方案1】:
从事务中创建文档绝对是可能的。您首先需要使用projects.databases.documents.beginTransactionendpoint 开始一个新事务。使用beginTransaction 端点后,您将收到一个可与projects.databases.documents.commit endpoint 一起使用的事务ID。该端点确实使用了Write 对象,但Write 对象具有currentDocument 属性,即Precondition type。 Precondition 对象又具有一个名为 exists 的属性,需要将其设置为 false,以便可以声明文档不存在。
设置为true时,目标文档必须存在。设置为false时,目标文档一定不存在。
这允许从事务中创建一个新文档,然后提交事务。