如何从Firebase Authentication列表生成邮件列表?
当然有可行的办法!针对你有2000个Firebase Authentication用户的场景,我整理了几个实用方案,从一键导出到自定义脚本都有,你可以根据自己的需求选:
方案1:直接用Firebase控制台导出(最省心,零代码)
这是最快的方式,适合不想折腾代码的情况:
- 打开Firebase控制台,进入你的目标项目
- 左侧菜单找到Authentication,切换到Users标签页
- 点击页面顶部的导出用户按钮
- 在弹出的配置窗口里,只勾选Email字段(其他不需要的可以取消勾选)
- 选择导出格式:CSV(直接能用Excel打开,记事本也能读取)或JSON
- 点击导出,等待系统生成文件后下载即可——2000个用户的话,几秒就能搞定
方案2:用Firebase Admin SDK写脚本(灵活自定义)
如果需要对邮箱做额外处理(比如过滤特定域名、去重),可以用脚本实现。这里以Node.js为例:
- 先从Firebase控制台的「项目设置」→「服务账号」页面,下载你的服务账号密钥JSON文件
- 编写导出脚本:
const admin = require('firebase-admin'); const fs = require('fs'); // 初始化Admin SDK const serviceAccount = require('./你的服务账号密钥路径.json'); admin.initializeApp({ credential: admin.credential.cert(serviceAccount) }); async function exportUserEmails() { const emailList = []; let nextPageToken; // 分页获取用户(Firebase一次最多返回1000条) do { const userBatch = await admin.auth().listUsers(1000, nextPageToken); userBatch.users.forEach(user => { if (user.email) { // 过滤无邮箱的用户(比如手机号登录的用户) emailList.push(user.email); } }); nextPageToken = userBatch.pageToken; } while (nextPageToken); // 导出到记事本(每行一个邮箱) fs.writeFileSync('user-emails.txt', emailList.join('\n')); // 导出到CSV(Excel直接兼容) fs.writeFileSync('user-emails.csv', 'Email\n' + emailList.join('\n')); console.log('导出完成!已生成txt和csv文件'); } exportUserEmails().catch(err => console.error('导出出错:', err));
- 执行步骤:
- 确保安装了Node.js,然后运行
npm install firebase-admin - 把脚本保存为
export-emails.js,替换密钥文件路径 - 终端执行
node export-emails.js,就能得到目标文件
- 确保安装了Node.js,然后运行
方案3:用Firebase CLI工具(命令行爱好者首选)
如果你习惯用命令行,Firebase CLI的auth:export命令可以快速完成:
- 先安装CLI:
npm install -g firebase-tools,然后执行firebase login登录你的账号 - 运行导出命令:
firebase auth:export user-emails.csv --project 你的项目ID --format csv --fields email
参数说明:
--format可选csv或json--fields email指定只导出邮箱字段- 执行完成后,当前目录会生成
user-emails.csv文件,直接用Excel打开即可
注意事项
- 不管用哪种方法,都需要你拥有项目的管理员权限,否则无法导出用户数据
- 如果有用户没有绑定邮箱(比如纯手机号登录、第三方OAuth登录的用户),上述方案都会自动过滤掉这类用户,只保留有邮箱的条目
内容的提问来源于stack exchange,提问作者random guy
相关产品推荐
相关产品推荐

