Node.js 如何在web中删除Firebase中未验证的电子邮件?
我创建了一个功能,可以在Firebase的Angular 6中注册电子邮件和密码 然后我发送一封电子邮件来验证电子邮件,有时用户会去他的电子邮件进行验证 听起来不错,其他人不去验证电子邮件,所以它仍然在我的Firebase中Node.js 如何在web中删除Firebase中未验证的电子邮件?,node.js,firebase,firebase-authentication,Node.js,Firebase,Firebase Authentication,我创建了一个功能,可以在Firebase的Angular 6中注册电子邮件和密码 然后我发送一封电子邮件来验证电子邮件,有时用户会去他的电子邮件进行验证 听起来不错,其他人不去验证电子邮件,所以它仍然在我的Firebase中 我希望Firebase中的任何功能能够自动删除超过两天未经验证的电子邮件。对于客户端来说,绝对没有办法做到这一点。为此,您必须使用NodeJS Firebase管理SDK 我不认为有一个直接的方法来做这件事。您可以尝试将listUsers方法与deleteUser方法链接起
我希望Firebase中的任何功能能够自动删除超过两天未经验证的电子邮件。对于客户端来说,绝对没有办法做到这一点。为此,您必须使用NodeJS Firebase管理SDK 我不认为有一个直接的方法来做这件事。您可以尝试将
listUsers
方法与deleteUser
方法链接起来。在删除用户之前,您可以检查该用户是否未经验证
一旦这个脚本准备好了,只需将它部署为Firebase云函数
我不知道如何每两天运行一次
我不确定这是否有效。但您可能想尝试一下:
function listAllUsers(nextPageToken) {
// List batch of users, 1000 at a time.
admin.auth().listUsers(1000, nextPageToken)
.then(function(listUsersResult) {
listUsersResult.users.forEach(function(userRecord) {
const user = userRecord.toJSON();
if (!user.emailVerified) {
admin.auth().deleteUser(user.uid)
.then(function() {
console.log("Successfully deleted user");
})
.catch(function(error) {
console.log("Error deleting user:", error);
});
}
});
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();
对于客户来说,绝对没有办法做到这一点。为此,您必须使用NodeJS Firebase管理SDK 我不认为有一个直接的方法来做这件事。您可以尝试将
listUsers
方法与deleteUser
方法链接起来。在删除用户之前,您可以检查该用户是否未经验证
一旦这个脚本准备好了,只需将它部署为Firebase云函数
我不知道如何每两天运行一次
我不确定这是否有效。但您可能想尝试一下:
function listAllUsers(nextPageToken) {
// List batch of users, 1000 at a time.
admin.auth().listUsers(1000, nextPageToken)
.then(function(listUsersResult) {
listUsersResult.users.forEach(function(userRecord) {
const user = userRecord.toJSON();
if (!user.emailVerified) {
admin.auth().deleteUser(user.uid)
.then(function() {
console.log("Successfully deleted user");
})
.catch(function(error) {
console.log("Error deleting user:", error);
});
}
});
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();
我需要确认函数请如何使用NodeJS Firebase管理SDK进行此操作。我需要确认函数请如何使用NodeJS Firebase管理SDK进行此操作。