Flutter Firebase / Firestore записывают в несколько таблиц одновременно - PullRequest
0 голосов
/ 22 апреля 2020

Я использую Firebase в качестве бэкенда для своего проекта Flutter. Мне нужно написать несколько таблиц в одной транзакции. Теперь у меня есть:

await _databaseReference
      .collection('user_data')
      .document(uid)
      .setData(userData);
await _databaseReference
      .collection('company_data')
      .document(uid)
      .setData(companyData);

Но это 2 транзакции, поэтому 1 может успешно завершиться, но другая может завершиться неудачей, и я хочу предотвратить это.

Большое спасибо.

1 Ответ

2 голосов
/ 22 апреля 2020

Вы должны использовать Пакетная запись , которая «представляет собой последовательность операций записи, выполняемых как одна единица», следующим образом:

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...