firebase - 如何让 firebase App Check 在 Web 应用程序中与 Cloud Firestore 一起使用

标签 firebase google-cloud-firestore vuejs2 progressive-web-apps recaptcha-v3

我尝试让 App Check 在我的 vue.js pwa 中工作。使用最新的 firebase sdk 并按照此处的步骤操作 https://firebase.google.com/docs/app-check/web/recaptcha-provider

我的 api key ( https://console.cloud.google.com/apis/credentials/key.. ) 不受任何 API 限制。我确实在 https 上添加了一些应用程序限制,包括我的项目域。

一切正常,直到我使用 recaptcha v3 激活 appCheck 并且我收到以下控制台错误: enter image description here

FirebaseError:[code=unknown]:获取身份验证 token 失败:AppCheck:获取服务器返回 HTTP 错误状态。 HTTP 状态:403。(appCheck/fetch-status-error)

此外,该应用程序无法获取任何 firebase 数据或身份验证。我尝试了几种浏览器,但没有任何 vpn 的东西。 在我已经安装的 pwa 中,发生 App Check 错误,但与 firebase 的连接仍然有效..

在没有激活 App Check 的情况下,两者都可以正常工作。此外,使用 App Check 调试 token ,整个过程就可以正常工作。我不明白为什么它会中断 firebase 连接,即使我没有启用强制执行。

我很感激有关如何解决此问题的任何提示。

最佳答案

我发现了我在生产代码中不小心遗留了 self.FIREBASE_APPCHECK_DEBUG_TOKEN = true; 的问题。

删除此行或仅在开发环境中解决整个问题时使用

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

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

关于firebase - 如何让 firebase App Check 在 Web 应用程序中与 Cloud Firestore 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70827096/

相关文章:

firebase - 如果不存在,将数据实时添加到 firebase

javascript - 使用 angularfire : 0. 8.0 startAt 和 endAt 未按预期工作

android - 更新 Firebase 中使用/Cloud Functions 创建的集合)

node.js - 如何查询 Firestore 今天所有文档的日期?

swift - 在 Firestore 中更改特定值时如何有效更新集合文档?

javascript - 在鼠标悬停时删除 Vue 自定义过滤器

android - Firebase 消息传递 - 什么 "content_available": true

android - 我在向 Android 发送通知时收到 InvalidRegistration

javascript - VueJS 防止在每个 v-for 循环中显示数据

javascript - 在 Vue.JS 2 中,如何在推送调用中将 props 传递给路由器 View ?