在本地主机上使用模拟器时的 Firebase AppCheck

Joh*_*ika 8 emulation node.js firebase firebase-tools firebase-app-check

在本地主机上使用模拟器进行本地开发时,开发人员如何使用 Firebase App Check?您是否完全禁用本地主机上的应用程序检查?或者您可以在本地模拟 App Check 吗?

Firebase 有一些关于将 App Check 与调试提供程序结合使用的说明,但其用例似乎是当您想要在本地进行调试但在云中使用 GCP 的后端服务时。它看起来与针对模拟器进行开发无关。

在客户端中运行此命令会导致 recaptcha 应用程序认证失败,并显示 403 响应 (PERMISSION_DENIED),可能是因为 localhost 未列为允许的域:

  const appCheck = firebase.appCheck();
  appCheck.activate(
    process.env.REACT_APP_FIREBASE_APP_CHECK_SITE_KEY,
    true,
  );
Run Code Online (Sandbox Code Playgroud)

可调用函数中强制执行应用程序检查时,context.appundefined在模拟器中运行时,因此请求将无法通过应用程序检查。

在本地禁用应用程序检查当然是一种选择,但想知道是否也有一种方法可以模拟应用程序检查。

小智 3

我已经设置好了,但并非没有经过大量的试验和错误。

尝试将此代码段添加到对活动 appCheck 的调用上方。似乎需要在激活 appCheck 之前进行。我遇到了同样的错误,直到我将调试片段移到活动调用之前。不过我使用的是网络版本 9...不确定这是否有什么不同。

if (process.env.NODE_ENV !== 'production') {
  self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
}

const appCheck = firebase.appCheck();
appCheck.activate(
  process.env.REACT_APP_FIREBASE_APP_CHECK_SITE_KEY,
  true,
);
Run Code Online (Sandbox Code Playgroud)

这将在控制台打印一个令牌,需要将其添加到您的 Firebase 项目设置中。就像您提供的链接中所描述的那样。

您执行这 2 个步骤后仍然收到 403 响应吗?