Выясните, какое действие пакетного режима в пожарном хранилище не удалось и какие данные были записаны в базу данных? - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть функция для создания персонажа, у которого есть 2 записи в firestore, чтобы создать персонажа и создать имя пользователя (я создаю имя пользователя, чтобы затем проверить, существует ли оно уже, т.е. применяя уникальные имена пользователей).

try {
  const characterPrivateRef = firestore().doc(`characters/${uid}`);
  const usernameRef = firestore().doc(`usernames/${username}`);
  firestore().batch().batch.create(characterRef, {...characterData});
  firestore().batch().batch.create(characterPrivateRef, {...usernameData});

  await firestore().batch().commit();
  // How can I get data written to each firestore document from batch 
  here?
} catch (e) {

  // How can I check what batch failed here i.e. if it was username I 
  want to show error saying something like ("Username already exists")
}

1 Ответ

0 голосов
/ 22 ноября 2018

Если вы используете пакетную запись, это означает, что вы пытаетесь записать данные в атомарную базу данных Firestore, что означает, что либо все операции выполнены успешно, либо все операции не выполнены.Насколько я знаю, нет никакого способа узнать, какая из этих двух операций в пакете не удалась.Вместо этого вы можете подключить полный прослушиватель и получить сообщение об ошибке после сбоя пакетной операции.Если вы хотите узнать, какая операция завершилась неудачно, вы должны записать данные отдельно, как две разные операции записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...