Sam*_*Sam 0 firebase google-cloud-platform firebase-realtime-database flutter google-cloud-firestore
我使用 Firebase 作为 Flutter 项目的后端。我需要在一个事务中写入多个表。我现在有:
await _databaseReference
.collection('user_data')
.document(uid)
.setData(userData);
await _databaseReference
.collection('company_data')
.document(uid)
.setData(companyData);
Run Code Online (Sandbox Code Playgroud)
但这是 2 笔交易,因此 1 笔交易可能会成功结束,但另一笔交易可能会失败,我想防止发生这种情况。
多谢。
您必须使用批量写入,它“是作为一个单元执行的一系列写入操作”,如下所示:
var batch = _databaseReference.batch();
batch.setData(
_databaseReference.collection('user_data').document(uid),
userData
);
batch.setData(
_databaseReference.collection('company_data').document(uid),
companyData
);
await batch.commit();
Run Code Online (Sandbox Code Playgroud)
根据下面的 Rahul Vyas 评论,请注意,一个批处理可以同时包含一些要在不同文档上执行的 ,set
和update
操作delete
(可能在不同的集合中,如上所示)。查看文档中的方法部分。
归档时间: |
|
查看次数: |
966 次 |
最近记录: |