【问题标题】:firebase admin node, insufficient permissionsfirebase 管理节点,权限不足
【发布时间】:2020-09-07 19:31:57
【问题描述】:

我已经检查了有关此问题的其他堆栈,但仍然不确定为什么我会收到权限不足错误。可能是我没有安全感。

我正在尝试从 2 个不同的 firebase 帐户同步用户。第一个帐户在第二个帐户上调用 firebase 函数。如果用户不存在,它会创建并执行一些数据库。如果用户存在,则它会创建一个自定义令牌并将其传递回第一个帐户以在 iframe 查询参数中使用。

我已经创建了 IAM 服务帐户,创建了密钥并保存到文件,并像其他堆栈解释的那样编辑了服务令牌权限,但我仍然收到错误消息。这是我的函数开始:

const firebaseConfig = {
  credential: admin.credential.applicationDefault(),
  apiKey: "xxxxxxxxxxxxxxxxxxxxxxx",
  authDomain: "itsli7-87384.firebaseapp.com",
  databaseURL: "https://itsli7-87384.firebaseio.com",
  projectId: "itsli7-87384",
  storageBucket: "itsli7-87384.appspot.com",
  messagingSenderId: "503897448704",
  appId: "1:503897448704:web:45773bfb231a24bbe213e5"
}


fb.initializeApp(firebaseConfig);
admin.initializeApp(firebaseConfig);

函数正在运行这个。

return admin.auth().getUser(data.user.uid)
      .then(async function () {
        return admin.auth().createCustomToken(data.user.uid)
          .then(function (customToken) {
            res.send(customToken);
          })
          .catch(function (error) {
            console.log('Error creating custom token:', error);
          });

错误

代码:auth/insufficient-permission

创建自定义令牌时出错:FirebaseAuthError:调用者没有 获得许可;请参阅 https://firebase.google.com/docs/auth/admin/create-custom-tokens 为 有关如何使用此功能和排除故障的更多详细信息。

【问题讨论】:

  • 请编辑问题以显示错误。
  • 好点@DougStevenson。谢谢,已添加
  • 您的服务帐号好像没有权限。您是否通过 URL 获得有关故障排除的建议?如果是这样,您尝试了什么?
  • 是的,我启用了 IAM 服务。然后创建一个服务帐户来获取密钥文件。将文件下载到函数文件夹并运行 env 导出代码以将 admin.credential.applicationDefault() 放入配置。然后我更新了服务帐户配置以拥有令牌创建权限。顺便说一句,它在本地工作,部署后出错。

标签: node.js firebase-authentication firebase-admin


【解决方案1】:

它没有使用将 cred.json 添加到 admin.credential.applicationDefault() 的规定方法,并将相同的 firebase init 配置对象传递给 admin init,而是使用:

var serviceAccount = JSON.parse(fs.readFileSync("cred.json"));

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://itsli7-87384.firebaseio.com"
});

fb.initializeApp(firebaseConfig);

【讨论】:

    猜你喜欢
    • 2019-07-31
    • 1970-01-01
    • 2022-01-15
    • 2019-10-24
    • 2020-10-14
    • 1970-01-01
    • 2022-01-25
    • 2021-10-31
    • 2021-08-23
    相关资源
    最近更新 更多