未启用Firebase DB时如何获取Auth表用户用于react-admin后台?
实现方案
方案1:后端封装Admin SDK接口(推荐,可直接对接react-admin)
- 客户端侧的Firebase Auth SDK没有批量拉取所有用户的权限,你需要在自己的后端服务中集成Firebase Admin SDK,初始化时传入Firebase项目的服务账号密钥即可获得Auth用户的管理权限
- 核心调用方法为
listUsers(),单次最多返回1000条用户数据,用户量超过1000时可通过返回的pageToken做分页拉取 - 参考Node.js实现代码:
const admin = require('firebase-admin'); // 初始化Admin SDK admin.initializeApp({ credential: admin.credential.cert('你的服务账号密钥文件路径.json') }); async function getAllAuthUsers() { let allUsers = []; let pageToken; do { const listUsersResult = await admin.auth().listUsers(1000, pageToken); allUsers = allUsers.concat(listUsersResult.users); pageToken = listUsersResult.pageToken; } while (pageToken); return allUsers; }
- 将上述逻辑封装成HTTP接口,返回格式适配react-admin的数据源要求后,就可以直接在后台面板对接用户列表、导出功能,返回的字段包含uid、邮箱、手机号、创建时间、最后登录时间等,和Firebase控制台Auth页展示的内容完全一致
方案2:临时导出无需对接系统
如果只是临时导出用户数据不需要集成到react-admin功能里,可以直接使用Firebase CLI完成导出:
- 导出CSV格式:
firebase auth:export users.csv --format=csv - 导出JSON格式:
firebase auth:export users.json --format=json
使用前需要先登录Firebase账号并切换到对应项目。
注意事项
- 禁止在前端客户端侧直接使用Firebase Admin SDK,会泄露服务账号密钥造成严重安全风险
- 给react-admin提供的用户拉取接口需要做好权限校验,仅允许管理员账号调用
内容的提问来源于stack exchange,提问作者MomchilovP
相关产品推荐
相关产品推荐

