1

在 localhost 上使用模拟器进行本地开发时,开发人员如何使用 Firebase App Check?您是否完全禁用了本地主机上的 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,
  );

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

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

4

1 回答 1

0

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

尝试在您对活动 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,
);

这将向控制台打印一个令牌,该令牌需要添加到您的 Firebase 项目设置中。如您提供的链接中所述。

您是否执行了这两个步骤并且仍然得到 403 响应?

于 2021-11-24T02:51:09.153 回答