Tengo una función en la nube de Firebase que realiza dos tareas asíncronas (crear usuario mediante autenticación y escritura por lotes mediante Firestore) con un solo bloque catch para todos los errores. Mi pregunta es ¿cómo puedo descifrar si el error se genera desde la autenticación o desde Firestore en el bloque catch antes de arrojar el error HTTPS al cliente?
exports.createUser = functions.https.onCall((data, _context) => { const email = data.email; const password = data.password; const birthday = data.birthday; const name = data.name; return admin.auth().createUser({ email: email, password: password, }) .then((userRecord) => { const userId = userRecord.uid; const db = admin.firestore(); const batch = db.batch(); const testDocRef1 = db.collection("test1").doc(userId); const testDocRef2 = db.collection("test2").doc(userId); batch.create(testDocRef1, {name: name, email: email}); batch.create(testDocRef2, {name: name, birthday: birthday}); return batch.commit().then(() => { return Promise.resolve({"userId": userId}); }); }) .catch((error) => { // how can I decipher which async task this error came from? throw new functions.https.HttpsError("unknown", "Refer to details for error specifics.", error); }); });