首页 > 解决方案 > Angular,Firebase deleteUser()不删除产品中的匿名用户,在开发项目中工作

问题描述

使用 Firebase 功能遇到奇怪的情况。我正在尝试清理匿名用户,并且我使用了下面的代码

// Delete all Anonymous Users
export const cleanupUsers = functions.pubsub.schedule('01 00 * * *')
.timeZone('America/Los_Angeles') // Users can choose timezone - default is America/Los_Angeles
.onRun(async context => {
  //Get the list of all Users
  const allUsers = await admin.auth().listUsers();
  allUsers.users.forEach(async(user) => {
    console.log('This USER has been read: ', user.email, user.providerData.length);
    if (user.providerData.length === 0) {
      console.log('This USER will now be deleted: ', user.email, user.uid);
      await admin.auth().deleteUser(user.uid).then(res => {
        console.log('This USER has been deleted: ', res);
      }).catch(err => console.log('Error on delete of user', err));
    }
  });
});

奇怪的是它适用于我在 Firebase 中的“开发”项目,但是当我将相同的功能部署到我的产品项目时,它不会删除匿名用户。我没有收到错误,它只是不执行删除用户部分。这是日志的一部分:

1:05:11.793 PM cleanup-cleanupUsers
This USER has been read:  undefined 0 
1:05:11.793 PM cleanup-cleanupUsers
This USER will now be deleted: undefined b79lTv0ckeR67IlNXSnNEGr0ZfD2
1:05:11.891 PM cleanup-cleanupUsers
Function execution took 1004 ms, finished with status: 'ok'

正如您从日志中看到的那样,它确实读取了匿名用户,它知道 uid,但由于某种原因,仅在 prod 中,它不会删除用户。

关于为什么不删除的任何想法?

标签: node.jsfirebasefirebase-authenticationgoogle-cloud-functionsfirebase-admin

解决方案


推荐阅读