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 次 |
| 最近记录: |