Firebase管理员SDK:仅通过Facebook或Google进行用户身份验证

时间:2019-06-27 16:06:55

标签: firebase firebase-authentication

我正在尝试使用Firebase Admin SDK删除经过身份验证的用户。可以使用this删除所有用户。但是,我只想删除通过特定身份验证服务提供商进行身份验证的用户,即删除通过Google / Facebook进行身份验证的用户,而保留使用电子邮件登录的用户。

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情...

function listAllUsers(nextPageToken) {
  // List batch of users, 1000 at a time.
  admin.auth().listUsers(1000, nextPageToken)
    .then(function(listUsersResult) {
      listUsersResult.users.forEach(function(userRecord) {

        //Check if the user signed in with Google/Facebook

        if (userRecord.providerId == "Google" || userRecord.providerId == "Facebook") {
         //Delete user
          admin.auth().deleteUser(userRecord.uid)
        }

      });
      if (listUsersResult.pageToken) {
        // List next batch of users.
        listAllUsers(listUsersResult.pageToken);
      }
    })
    .catch(function(error) {
      console.log('Error listing users:', error);
    });
}
// Start listing users from the beginning, 1000 at a time.
listAllUsers();

这是未经测试的,所以我不确定这个确切的代码是否会起作用,但是您明白了。