【发布时间】:2020-05-24 18:15:46
【问题描述】:
我正在 firebase 中创建云功能并需要一些帮助,我正在尝试从 firebase 中删除用户并在一个云功能中从 firestore 中删除他的文档。
我如何为 auth 和 firestore 进行批处理作业/事务,假设用户尝试删除他的帐户,但由于某种原因 user.delete() 函数不起作用(假设它在 firebase 方面关闭在那一刻)。用户会收到一条错误消息,我们无法删除他的帐户,但当他尝试再次登录时,他也会收到错误消息,因为他的文档不存在。
我查看了删除用户数据的 firebase 扩展程序,但它并没有删除用户帐户,而且似乎有同样的问题。
我是否需要在应用程序/云功能中处理这种边缘情况,这是 firebase 应该处理的事情还是我只是出错了?
这是我的代码,如果有帮助的话:
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";
}
});
【问题讨论】:
标签: node.js firebase google-cloud-firestore firebase-authentication firebase-admin