【问题标题】:How to get firebase App Check working with cloud firestore in a web app如何在 Web 应用程序中使用 Cloud Firestore 获取 Firebase App Check
【发布时间】:2022-04-14 01:46:56
【问题描述】:

我尝试让 App Check 在我的 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 上添加了一些应用程序限制,包括我的项目域。

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

FirebaseError: [code=unknown]: Fetching auth token failed: AppCheck: Fetch server returned an HTTP error status. HTTP status: 403. (appCheck/fetch-status-error)

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

如果没有激活 App Check,它都可以正常工作。同样使用 App Check 调试令牌,整个事情都可以正常工作。即使我没有启用强制执行,我也不明白为什么它会中断 firebase 连接。

感谢有关如何解决此问题的任何提示。

【问题讨论】:

  • 嗨@Philip,您能否分享任何调试日志以进一步调查此问题。您可以使用firebase.firestore.setLogLevel('debug') 启用详细的调试日志记录。
  • 嗨 @MarcAnthonyB 我在这里上传了一个 chrome 控制台日志:cloudvyzor.com/logpad/…

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


【解决方案1】:

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

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

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

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

【讨论】:

  • 非常感谢,忘记了真糟糕。总是小事。大声笑
【解决方案2】:

根据您的问题,您希望使用 Web 应用程序为 Firestore 启用 Firebase 应用检查。目前,Firestore App Check 不支持。

据此Documentation

Cloud Firestore 支持目前仅适用于 Android 和 iOS 客户端。如果您的项目有 Web 应用,请在 Web 客户端支持可用之前不要启用 Cloud Firestore 强制执行。

【讨论】:

  • 我理解那些更新发行说明有误吗? firebase.google.com/support/release-notes/js#9.6.0
  • 嗨@Philip,发行说明仅声明添加了对 Cloud Firestore 的支持 - 添加了对 App Check 的支持,但仍然不支持 Web 应用程序。它目前仅适用于 Android 和 iOS 客户端。
  • 我认为 JS SDK 是用于 web 的,但我似乎走错了路……感谢您的澄清
  • 官方 firebase youtube 频道怎么会谈论带有 appcheck 的 Web 应用程序? youtu.be/VjENUKwjDEE?t=66 仅与基于 JS/Web 的应用程序相关的是否作为原生应用程序运行?不会有多大意义吧?
  • 文档清楚地展示了如何为 Web 应用程序添加它! firebase.google.com/docs/app-check/web/…
猜你喜欢
  • 1970-01-01
  • 2019-02-19
  • 2019-12-01
  • 2021-02-23
  • 2020-09-21
  • 2022-01-16
  • 1970-01-01
  • 2020-05-01
  • 1970-01-01
相关资源
最近更新 更多