我想通过使用一次创建超过1000个用户 createUserWithEmailAndPassword api.But成功创建了10-15个用户之后,我收到了firebase由于某些异常活动而阻止此设备的错误消息。
根据我的理解,这是因为,每当我创建用户时,用户都会自动登录,因为来自单个设备的多个用户登录,firebase阻止了用户。
有没有办法解决这个问题。请建议我如何创建超过1000个用户。
有没有办法在firebase中的新sdk中使用旧的sdk。在旧版本的firebase api中,它运行正常。
答案 0 :(得分:0)
尝试在成功创建用户并在调用其他用户创建之前注销用户。
尝试以下代码。我没有测试过,但它应该工作。如果它没有尝试增加超时延迟。
var userArray = [
{
email: "...",
password: "..."
},
...
];
createUser(userArray, 0);
function createUser(array, index){
if (index >= array.length){
return;
}
var user = array[index];
firebase.auth()
.createUserWithEmailAndPassword(user.email, user.password)
.then(function(){
setTimeout(function(){
firebase.auth().signOut().then(function(){
// Call to create new user
createUser(array, index + 1);
});
}, 100);
});
}
我认为firebase不允许与多个用户一起登录,因此当您致电firebase.auth().createUserWithEmailAndPassword
时,它应该用新的用户替换现有用户。
尝试在当前用户上设置观察者,并在调用createUserWithEmailAndPassword
方法时查看它是否发生变化。
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
} else {
// No user is signed in.
}
});
有关管理用户的详细信息,请查看以下链接。 https://firebase.google.com/docs/auth/web/manage-users
答案 1 :(得分:0)
Firebase刚刚更新了他们的命令行工具并添加了auth:import
命令:
auth:import
命令将用户帐户导入Firebase项目。
请参阅reference documentation for auth:import
了解详情。
现在还有一个Firebase Admin SDK,其中包含您可以在服务器上运行以创建用户帐户而无需立即登录的功能。虽然此SDK仍处于速率限制之下,因此您可能会更好地通过CLI的auth:import
命令服务。
原始回答
目前的Firebase身份验证API允许用户创建自己的帐户。它并不意味着允许通过某些管理过程预先创建帐户。正如您所发现的那样,这样的过程很快就会被阻止。
除了在用户实际注册时创建帐户外,目前无法完成您的用例。我们可能会在将来扩展API以允许您使用用例,但是像往常一样:没有承诺或时间表。