我需要在Web应用程序中注册Firebase中的许多生成用户。我没有在Firebase的API参考中找到任何方法来在一个请求中执行此操作,因此我为每个生成的对电子邮件/密码调用createUserWithEmailAndPassword。注册100个用户后,由于Firebase阻止了来自设备的所有请求,我收到了auth / too-many-requests错误并且无法发送请求30分钟或更长时间。
如何防止在firebase控制台中阻止我的应用程序或者为此在Web应用程序的代码中编写什么?我使用标准的firebase连接:
const config = {
apiKey: 'my-api-key',
authDomain: 'my-project.firebaseapp.com',
databaseURL: 'https://my-project.firebaseio.com',
storageBucket: 'my-project.appspot.com',
messagingSenderId: 'my-sender-id'};
firebase.initializeApp(config);
使用createUserWithEmailAndPassword注册100个用户:
firebase.auth().createUserWithEmailAndPassword(email, password)
我使用Promise.all
调用所有请求firebase.Promise.all(registerRequests)
其中注册请求是createUserWithEmailAndPassword promise
答案 0 :(得分:5)
我建议使用Admin node.js SDK。您将拥有特权访问权限,可以根据需要创建任意数量的电子邮件和密码用户,而不会受到限制。 https://firebase-dot-devsite.googleplex.com/docs/auth/admin/manage-users
答案 1 :(得分:2)
普通用户可以使用createUserWithEmailAndPassword()
API注册您的应用。因此,它具有相当低的速率限制,以防止滥用。
如果您想批量创建用户,则应使用auth:import
command in the Firebase CLI tools。这是专门针对这个原因而制定的,没有这样的速率限制。
答案 2 :(得分:0)
您的问题归结为Firebase Spark限制,该限制声明只允许100个同时连接。当您创建新用户时,您将建立与db的新连接。
Firebase用户拥有一组固定的基本属性 - 唯一ID,a 主要电子邮件地址,名称和照片URL - 存储在项目中 用户数据库,可由用户(iOS,Android,Web)更新。
作为一种解决方法,请按照此处Firebase Authentication Limits中的说明创建100个用户后创建新配置。
这也可能是因为每次注册用户时都会将其登录并保留连接一段时间。注册后肯定有办法关闭该连接。