Javascript 找出哪个firestore批处理操作失败,以及哪些数据写入了数据库?

Javascript 找出哪个firestore批处理操作失败,以及哪些数据写入了数据库?,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,我有一个函数来创建一个字符,该字符有两次写入firestore以创建字符和创建用户名(我创建用户名以检查它是否已经存在,即强制使用唯一用户名) 如果您使用的是批写入,这意味着您试图将数据写入Firestore数据库原子,这意味着所有操作要么成功,要么失败。据我所知,无法知道批处理中这两个操作中的哪一个失败了。相反,您可以附加一个完整的侦听器,并在批处理操作失败时获取错误消息。如果您想知道哪个操作失败,应该将数据作为两个不同的写入操作分别写入 try { const characterPriv

我有一个函数来创建一个字符,该字符有两次写入firestore以创建字符和创建用户名(我创建用户名以检查它是否已经存在,即强制使用唯一用户名)


如果您使用的是批写入,这意味着您试图将数据写入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")
}