Firebase批量删除已认证用户及批量创建10000用户方法咨询
解决Firebase批量删除用户与批量创建10000个用户的问题
Hey Jamie,我来帮你搞定这两个Firebase的实操问题!先附上你提供的随机用户截图:

一、批量删除已创建的用户
Firebase控制台没法直接批量删除大量用户,咱们得借助Firebase Admin SDK来实现,这里以Node.js为例,步骤如下:
准备环境与初始化Admin SDK
先创建一个Node.js项目,安装依赖:npm init -y npm install firebase-admin然后从Firebase控制台下载服务账号密钥(项目设置→服务账号→生成新的私钥),保存为
serviceAccountKey.json,接着初始化SDK:const admin = require('firebase-admin'); const serviceAccount = require('./serviceAccountKey.json'); admin.initializeApp({ credential: admin.credential.cert(serviceAccount) }); const auth = admin.auth();分页获取所有用户并批量删除
Firebase的listUsers接口一次最多返回1000个用户,所以咱们需要分页遍历所有用户,然后用deleteUsers批量删除(每次最多删1000个):async function deleteAllUsers() { let pageToken = null; do { const listUsersResult = await auth.listUsers(1000, pageToken); // 提取所有用户的UID const userUids = listUsersResult.users.map(user => user.uid); // 批量删除 if (userUids.length > 0) { const deleteResult = await auth.deleteUsers(userUids); console.log(`删除了 ${deleteResult.successCount} 个用户,失败 ${deleteResult.failureCount} 个`); } pageToken = listUsersResult.pageToken; } while (pageToken); console.log('所有用户删除完成!'); } deleteAllUsers().catch(err => console.error('删除出错:', err));运行这个脚本就能把所有用户批量删掉啦~
二、批量创建10000个用户不被限制
你之前被限制主要是触发了Firebase的速率限制,咱们用「分批创建+控制请求频率」的策略来规避,同样用Admin SDK:
生成随机用户数据
先写个生成随机用户的函数,比如你截图里的那种:function generateRandomUser() { const randomEmail = `user_${Math.random().toString(36).substring(2, 10)}@example.com`; const randomPassword = `Pass${Math.random().toString(36).substring(2, 12)}`; return { email: randomEmail, password: randomPassword, displayName: `User_${Math.random().toString(36).substring(2, 8)}` }; }分批创建用户并添加延迟
Firebase的createUsers接口一次最多创建100个用户,咱们每创建100个就暂停几秒,避免触发速率限制:async function createBatchUsers(batchSize) { const users = []; for (let i = 0; i < batchSize; i++) { users.push(generateRandomUser()); } try { const createResult = await auth.createUsers(users); console.log(`成功创建 ${createResult.successCount} 个用户,失败 ${createResult.failureCount} 个`); // 打印失败的用户信息 createResult.errors.forEach(err => console.error(`创建失败:${err.error.message},用户数据:${JSON.stringify(err.user)}`)); } catch (err) { console.error('批量创建出错:', err); } } async function create10000Users() { const totalUsers = 10000; const batchSize = 100; const totalBatches = Math.ceil(totalUsers / batchSize); for (let i = 0; i < totalBatches; i++) { console.log(`正在创建第 ${i+1}/${totalBatches} 批用户`); await createBatchUsers(batchSize); // 每批创建后暂停5秒,可根据实际情况调整 await new Promise(resolve => setTimeout(resolve, 5000)); } console.log('10000个用户创建完成!'); } create10000Users().catch(err => console.error('创建流程出错:', err));额外注意事项
- 先去Firebase控制台查看「配额」(项目设置→配额),确认用户创建的配额是否足够,如果默认配额不够,可以申请提升;
- 如果还是遇到限制,可以适当延长每批之间的延迟时间;
- 脚本运行过程中如果中断,可以记录已创建的用户数量,下次从对应的批次开始。
内容的提问来源于stack exchange,提问作者Jamie Jamier
相关产品推荐
相关产品推荐

