Я создаю облачную функцию в firebase и мне нужна помощь, я пытаюсь удалить пользовательскую форму firebase и удалить его документ из firestore в одной облачной функции.
Как сделать пакет Работа / транзакция для auth и firestore. Допустим, пользователь пытается удалить свою учетную запись, но по какой-то причине функция user.delete () не работает (скажем, в данный момент она не работает на стороне firebases). Пользователь получит сообщение об ошибке, что мы не сможем удалить его учетную запись, но когда он попытается войти снова, он также получит ошибку, потому что его документ не существует.
Я посмотрел на расширение firebase, чтобы удалить пользовательские данные, но они не удаляют учетную запись пользователя, и, похоже, у них та же проблема.
Нужно ли обрабатывать такой крайний случай в app / cloud-functions? или я просто ошибаюсь?
Вот мой код, если это поможет:
const functions = require("firebase-functions");
const admin = require("firebase-admin");
exports.deleteUser = functions.https.onCall(async (data, context) => {
try {
const uid = context.auth.uid;
const db = admin.firestore();
const collection = db.collection("users");
await collection.doc(uid).delete();
await admin.auth.deleteUser(uid); // what if this line fails?
return "success";
} catch (err) {
console.error(err);
return "error";
}
});