如何让firebase App Check在Web应用程序中与云firestore一起工作

omjgkv6w  于 2022-11-17  发布在  其他
关注(0)|答案(3)|浏览(201)

我试着让应用程序检查在我的vue.js pwa工作.使用最新的firebase sdk和以下步骤在这里https://firebase.google.com/docs/app-check/web/recaptcha-provider
我的API密钥(https://console.cloud.google.com/apis/credentials/key..)不受任何API限制。我确实在https上添加了一些应用程序限制,包括我的项目域。
一切正常,直到我激活appCheck与captcha v3,我得到以下控制台错误:

FirebaseError: [code=unknown]: Fetching auth token failed: AppCheck: Fetch server returned an HTTP error status. HTTP status: 403. (appCheck/fetch-status-error)
此外,该应用程序无法获得任何firebase数据或auth.我尝试在几个浏览器,没有任何vpn的东西.在我已经安装的pwa应用程序检查错误发生,但连接到firebase仍然工作.
如果没有激活应用程序检查,这两个工作都没有问题。也与应用程序检查调试令牌,整个事情只是工作。我不明白为什么它中断了firebase连接,即使我还没有启用强制。
我很感激任何关于如何解决这个问题的提示。

gudnpqoy

gudnpqoy1#

我发现了这个问题,我不小心在我的产品代码中留下了self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
删除此行或仅在开发环境中使用,以解决整个问题

if (location.hostname === "localhost") {
  self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
}

我没想到这一行会影响到我还没有注册调试令牌的浏览器,使其在常规appCheck中失败,但当然,无论如何,在生产中使用它是没有意义的。

drnojrws

drnojrws2#

根据您的问题,您希望为带有Web应用程序的Firestore启用Firebase应用程序检查。目前,Firestore应用程序检查不支持此功能。
根据本文档
Cloud Firestore支持目前仅适用于Android和iOS客户端。如果您的项目有Web应用,请在Web客户端支持可用之前不要启用Cloud Firestore强制。

nhaq1z21

nhaq1z213#

我会给那些对设置有问题的人留下一个答案。更详细的答案,你可以检查这个问题。
简而言之,你需要做几个步骤。
1.建立火力基地。
1.转到how to set up app check
1.注册reCAPTCHA here,并将secret_key添加到Firebase控制台,将site_key添加到Web代码。
1.根据如何设置应用程序检查文档,在代码中初始化Firebase。
1.获取您的debug_key并将其添加到您的firebase控制台和代码中。
最后,程式码应该看起来像这样:

  • 别忘了把你的密钥保存到一个.env文件或firebase.js文件中,或者其他你不会上传到git的地方。
if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') {
    window.FIREBASE_APPCHECK_DEBUG_TOKEN = 'your_debug_token';
}

const appCheck = initializeAppCheck(app, {
    provider: new ReCaptchaV3Provider('your_site_key_from_register'),

    // Optional argument. If true, the SDK automatically refreshes App Check
    // tokens as needed.
    isTokenAutoRefreshEnabled: true
});

相关问题