You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase批量删除已认证用户及批量创建10000用户方法咨询

解决Firebase批量删除用户与批量创建10000个用户的问题

Hey Jamie,我来帮你搞定这两个Firebase的实操问题!先附上你提供的随机用户截图:

随机用户截图

一、批量删除已创建的用户

Firebase控制台没法直接批量删除大量用户,咱们得借助Firebase Admin SDK来实现,这里以Node.js为例,步骤如下:

  1. 准备环境与初始化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();
    
  2. 分页获取所有用户并批量删除
    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:

  1. 生成随机用户数据
    先写个生成随机用户的函数,比如你截图里的那种:

    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)}`
      };
    }
    
  2. 分批创建用户并添加延迟
    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));
    
  3. 额外注意事项

    • 先去Firebase控制台查看「配额」(项目设置→配额),确认用户创建的配额是否足够,如果默认配额不够,可以申请提升;
    • 如果还是遇到限制,可以适当延长每批之间的延迟时间;
    • 脚本运行过程中如果中断,可以记录已创建的用户数量,下次从对应的批次开始。

内容的提问来源于stack exchange,提问作者Jamie Jamier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:21:45