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

Firebase-admin报错‘无对应配置’,如何通过服务账号找项目管理员?

Firebase服务账号相关问题解答

问题描述

接手了一个使用Firebase实现通知功能的客户项目,想要找到项目管理员以获取Firebase项目邀请。目前仅能从客户的AWS上获取到如下格式的Firebase服务账号JSON(“...”为脱敏内容):

{
    "type": "service_account",
    "project_id": "...",
    "private_key_id": "...",
    "private_key": "...",
    "client_email": "...@....iam.gserviceaccount.com",
    "client_id": "...",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://oauth2.googleapis.com/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_x509_cert_url": "..."
}

尝试使用firebase-admin获取所有用户列表,代码如下:

const admin = require('firebase-admin')

admin.initializeApp({
    databaseURL: 'https://<project-id>.firebaseio.com',
    credential: admin.credential.cert(require('./firebase.json')),
})

;(async () => {
    console.log(await admin.auth().listUsers(100))

})()

执行后出现如下错误:

(node:77972) UnhandledPromiseRejectionWarning: Error: There is no configuration corresponding to the provided identifier.
    at FirebaseAuthError.FirebaseError [as constructor] (.../firebase-test/node_modules/firebase-admin/lib/utils/error.js:44:28)
    at FirebaseAuthError.PrefixedFirebaseError [as constructor] (.../firebase-test/node_modules/firebase-admin/lib/utils/error.js:90:28)
    at new FirebaseAuthError (.../firebase-test/node_modules/firebase-admin/lib/utils/error.js:149:16)
    at Function.FirebaseAuthError.fromServerError (.../firebase-test/node_modules/firebase-admin/lib/utils/error.js:188:16)
    at .../firebase-test/node_modules/firebase-admin/lib/auth/auth-api-request.js:1665:49
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
    at async .../firebase-test/firebase.js:10:14

疑问:

  • 该错误是什么意思?
  • 这份凭证JSON是否存在问题?它目前在AWS上用于发送通知。
  • 还有什么方法可以通过该JSON获取项目登录邮箱?

解答

1. 错误含义

这个错误说明你的Firebase Admin SDK请求的Auth服务配置不存在,主要有两种可能:

  • 填写的databaseURL对应的Firebase项目未启用Firebase Auth服务;
  • 当前服务账号没有被授予访问Firebase Auth的权限,或者项目本身未配置Auth模块。

由于该凭证能在AWS上发送通知,说明它仅拥有Cloud Messaging(FCM)的操作权限,没有访问Firebase Auth的权限,因此调用listUsers接口会触发此错误。

2. 凭证JSON是否有问题?

凭证本身是有效的——它能正常发送FCM通知,说明是合规的Firebase服务账号凭证。问题出在账号权限范围有限:该账号仅被配置了FCM相关权限,没有Firebase Auth的访问权限。Firebase服务账号的权限由项目管理员在Google Cloud控制台单独配置,不同服务需要单独授权。

3. 获取项目登录邮箱的方法

仅通过这份服务账号JSON,无法直接获取项目管理员的个人登录邮箱(即创建项目的Google账号邮箱),因为服务账号是独立的身份实体,与管理员个人账号没有直接关联数据。

可以尝试两种间接方式:

  • 给该服务账号添加iam.serviceAccounts.list或projects.getIamPolicy权限后,调用Google Cloud的IAM API,列出项目的所有IAM成员,筛选出拥有Owner或Editor角色的账号,这些通常是项目管理员;
  • 利用该凭证调用FCM API发送测试通知到自己的设备,若客户的Firebase控制台开启了操作日志,可尝试通过日志溯源,但前提是你能访问控制台——不过当前你没有项目权限,最直接的方式还是联系客户获取项目邀请。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 02:27:01