Firebase:403 PERMISSION_DENIED(FirebaseError:安装):更新 SDK 后请求被阻止 (FirebaseInstallationsService)

And*_*iep 27 firebase

我更新了 Firebase for Web 应用程序的 Firebase SDK。
由于更新我的应用程序不再启动并引发以下错误:
知道发生了什么吗?

Uncaught (in promise)
FirebaseError: Installations: Create Installation request failed with error "403 PERMISSION_DENIED: Requests to this API firebaseinstallations.googleapis.com method google.firebase.installations.v1.FirebaseInstallationsService.CreateInstallation are disabled." (安装/请求失败)。

And*_*iep 91

事实证明,新版本的 Firebase SDK 依赖于新的内部基础设施服务,称为 FIS(Firebase 安装服务),用于定位标识符(“FID”或“Ins​​tance-ID”)。
如果您对应用程序中使用的 API 密钥使用 API 密钥限制,则必须扩展这些限制以允许使用 firebaseinstallations.googleapis.com 上的新 Firebase 安装服务。

要允许您的 API 密钥与新的Firebase Installations API一起使用,请执行以下操作:

  • 转到Google Cloud Console
  • 选择相关项目(即您用于应用程序的项目)
  • 打开菜单并转到APIs & Services->Credentials
  • 单击Edit API key有问题的 API 密钥
  • 向下滚动到 API restrictions
  • 从下拉菜单中选择 Firebase Installations API
  • 点击 Save
  • 等待几分钟让 Google 服务器更新并重试...

注意:如果您在API列表中找不到Firebase Installations API,您可能首先必须为您的项目启用该 API(要这样做,请单击此处)。

注意:如果您不确定您的应用程序中使用了哪个 API 密钥,您可以检查每个 API 密钥的 Firebase 安装 API使用数量

注意: 通过检查您是否可以在Firebase 安装 API 请求指标页面上看到成功请求增加来验证您的修复。200


测试您的配置是否适用于以下 CURL 命令:

api_key=<YOUR_API_KEY>;
project_identifier=<YOUR_PROJECT_ID>;
app_id=<YOUR_FIREBASE_APP_ID_SIMILAR_TO_1:12345678:android:00000aaaaaaaa>;

curl -H "content-type: application/json" -d "{appId: '$app_id', sdkVersion: 't:1'}" https://firebaseinstallations.googleapis.com/v1/projects/$project_identifier/installations/?key=$api_key;
Run Code Online (Sandbox Code Playgroud)

如果您的 API 密钥使用应用程序限制,则必须使用标识您的应用程序的相应 HTTP 标头扩展您的 CURL 请求:

  • 安卓: -H "x-android-package: com.rayo.example.app" -H "x-android-cert: 1234567890ABCDEF1234567890ABCDEFAABBCCDD"
  • IOS: -H "x-ios-bundle-identifier: com.rayo.example.app"
  • 网页应用: -H "Referer: https://www.your.webapp.com/page?p=1"

  • 您能否将您的云控制台链接更新为正确的链接? (2认同)
  • 节省了很多时间 (2认同)
  • 我对 API 没有限制,但存在此问题,然后我选择了限制中的所有 API,当我将 firebase SDK 降级到 20.1.0 时,问题仍然存在。它可以工作。我知道这不是一个好的解决方案,但除此之外没有什么可以帮助我。 (2认同)
  • @AndreasRayoKniep 我按照您的指示完成了所有步骤,但仍然收到 403 PERMISSION_DENIED。我不明白,你能帮我吗? (2认同)