我正在尝试使用Firebase Admin SDK删除经过身份验证的用户。可以使用this删除所有用户。但是,我只想删除通过特定身份验证服务提供商进行身份验证的用户,即删除通过Google / Facebook进行身份验证的用户,而保留使用电子邮件登录的用户。
答案 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();
这是未经测试的,所以我不确定这个确切的代码是否会起作用,但是您明白了。