强制 Firebase 应用程序检查后如何从 nodejs admin sdk 访问 firebase 数据库

Kru*_*Lia 9 node.js firebase firebase-realtime-database firebase-admin firebase-app-check

我在我的项目中启用了Firebase 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());
});
Run Code Online (Sandbox Code Playgroud)

抛出以下错误

[2022-06-27T09:42:25.299Z] @firebase/database: FIREBASE WARNING: Missing appcheck token (https://qtalkproject.firebaseio.com/)

应用程序检查不是仅针对客户端吗?Firebase 不应该允许来自服务帐户的所有请求吗?为什么要求应用程序检查令牌?根据文档, firebase-admin-sdk 可以创建应用程序检查令牌。如果允许创建应用程序检查令牌,是不是意味着它已经通过了身份验证?为什么我无法从同一个 admin sdk 访问数据库?我在这里错过了什么吗?

Kru*_*Lia 4

如果其他人像我一样被阻止,直到 firebase 发布修复程序,您可以使用旧版本的 firebase admin sdk,它没有应用程序检查(我使用 v9.3.0)来访问 rtdb 和其他 firebase 功能