与 Firebase 安装服务器 API 通信时出现 Android 错误

2022-09-01 10:21:11

我在应用程序启动时收到一条错误消息,指出日志,例如

W/Firebase-Installations: Error when communicating with the Firebase Installations server API. HTTP response: [400 Bad Request: {
  "error": {
    "code": 400,
    "message": "API key not valid. Please pass a valid API key.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.Help",
        "links": [
          {
            "description": "Google developers console",
            "url": "https://console.developers.google.com"
          }
        ]
      }
    ]
  }
}
]
2020-04-27 12:42:34.621 22226-23596/in.co.androidapp.g7 E/Firebase-Installations: Firebase Installations can not communicate with Firebase server APIs due to invalid configuration. Please update your Firebase initialization process and set valid Firebase options (API key, Project ID, Application ID) when initializing Firebase.

大约一周前,我收到一封电子邮件,说我应该更新我的google_services.json文件,我已经做了4-5次。无改进。它已经运行了大约一年。自从我在应用程序中遇到此问题以来,它只有2-3天。

随后,Firebase Cloud Messaging 和其他 firebase 服务无法正常工作。我没有进行编程初始化(即使用FirebaseOptions对象来提供这些值),只是默认初始化使用FirebaseApp.initializeApp(this);

我试过 https://github.com/firebase/firebase-android-sdk/blob/master/firebase-installations/API_KEY_RESTRICTIONS.md

提前致谢。


答案 1

我有同样的问题。我通过以下方式解决了它。

转到应用/构建/生成/res/google-services/debug/values/values.xml

在这里,您可以找到旧的 API 密钥。

将google_api_key值和google_crash_reporting_api_key值替换为您可以从 google-services.json 文件中找到的新值。它将在 api-key 数组下。

干杯!


答案 2

如果您的 API 密钥有问题,您可以在云控制台中创建新的 API 密钥:

  • 转到 Google Cloud Console
  • 选择相关项目(即您用于应用程序的项目)
  • 打开菜单并转到→APIs & ServicesCredentials
  • 在页面顶部单击→+ CREATE CREDENTIALSAPI key
  • 将应用程序中的 API 密钥替换为新创建的 API 密钥

如果您使用的是 Firebase 控制台中的配置文件,则首先必须删除或限制当前使用的 API 密钥,以便 Firebase 更新配置文件并使用新的 API 密钥。google-services.jsongoogle-services.json

  • 在配置文件中标识 API 密钥。google-services.json
  • 通过根据 Firebase 安装 API 指标页面检查 API 密钥的使用情况,确认 API 密钥是否正在创建错误请求。API 密钥的列应显示大于 0 的数字。Usage with this service
  • 通过单击 bin 符号删除该 API 密钥,或通过单击铅笔符号添加到该 API 密钥。!!警告!!请勿删除现有应用程序安装所需的 API 密钥,以便其他 Firebase 服务(如 Firebase 身份验证或实时数据库)使用。Application restrictions

等待几分钟,让谷歌服务器更新。下次下载配置文件时应包含新的 API 密钥。google-service.json

您可以使用以下 CURL 命令测试您的配置。您遇到的错误是什么?(注意:如果您看到请求的 JSON 数据,并且您的配置成功)


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

api_key=<YOUR_API_KEY>;
project_identifier=<YOUR_PROJECT_ID>;
app_id=<YOUR_FIREBASE_APP_ID_EXAMPLE_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;

有关 API 密钥和 Firebase 安装 API 的其他相关链接:


推荐