首页 > 解决方案 > 删除用户时不会触发 Firebase 云功能

问题描述

如firebase文档中所述,我创建了一个在用户删除时触发的firebase云功能:

const admin = require('firebase-admin');
const functions = require('firebase-functions');
const firestore = admin.firestore();
admin.initializeApp();

exports.deleteUserData = functions.auth.user().onDelete((event) => {
  const uid = event.uid;
  const firestorePromise = clearFirestoreData(uid);

  return Promise.all([firestorePromise])
      .then(() => console.log(`Successfully removed data for user #${uid}.`)
  );
});

从我的 iOS 应用程序中删除用户后,通过调用:

user.reauthenticate(with: credential) { result, error in
    if let error = error {
        completion(error)
    } else {
        user.delete { error in
            if let error = error {
                completion(error)
            } else {
                completion(nil)
            }
        }
    }
}

在firebase中,用户从“身份验证”中删除,但该功能没有被触发。

如果我直接从firebase控制台的“身份验证”中删除用户,则会触发该功能并成功删除用户的数据。

我在用:

"firebase-admin": "^8.8.0",
"firebase-functions": "^3.1.0"

标签: firebasefirebase-authenticationgoogle-cloud-functions

解决方案


其他人报告了同样的问题。请参阅此处的讨论。

这似乎是 Cloud Functions 的一个错误。如果是这种情况,那么 Stack Overflow 无能为力。

我会鼓励您直接向 Firebase 支持提交错误报告,以便他们可以收集数据并升级到工程部门。


推荐阅读