我已启用Firebase 应用程序检查 https://firebase.google.com/docs/app-check在我的项目中,以确保所有请求仅来自我们的应用程序。到目前为止,这一直运行良好(使用 RecaptachaV3 作为网络证明提供程序)。但是我想从我的后端 Nodejs 服务器访问数据库(rtdb)。我正在使用 firebase-admin-sdk 及其服务帐户。但我做不到。
const { initializeApp, applicationDefault } = require('firebase-admin/app');
const { getDatabase } = require('firebase-admin/database');
const app = initializeApp({
credential: applicationDefault(),
databaseURL: '********',
});
const db = getDatabase(app);
const ref = db.ref('/some-path');
ref.once('value', (snapshot) => {
console.log(snapshot.val());
});
抛出以下错误
[2022-06-27T09:42:25.299Z] @firebase/database: FIREBASE WARNING: Missing appcheck token (https://qtalkproject.firebaseio.com/)
应用程序检查不是仅针对客户端吗? Firebase 不应该允许来自服务帐户的所有请求吗?为什么要求应用程序检查令牌?根据文档 https://firebase.google.com/docs/app-check/custom-provider允许 firebase-admin-sdk 创建应用程序检查令牌。如果允许创建应用程序检查令牌,是不是意味着它已经通过了身份验证?为什么我无法从同一个 admin sdk 访问数据库?我在这里错过了什么吗?
如果其他人像我一样被阻止,直到 firebase 发布修复程序,您可以使用旧版本的 firebase admin sdk,它没有应用程序检查(我使用 v9.3.0)来访问 rtdb 和其他 firebase 功能
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)