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