Firebase无法与Firebase服务器通信

时间:2020-04-30 05:02:55

标签: android firebase

我正在使用Firebase PhoneAuth并收到以下错误。

由于无效的配置,Firebase安装无法与Firebase服务器API通信。在初始化Firebase时,请更新Firebase初始化过程并设置有效的Firebase选项(API密钥,项目ID,应用ID)。

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"
          }
        ]
      }
    ]
  }
}
]

4 个答案:

答案 0 :(得分:9)

背景

该错误表明Google不接受您在初始化Firebase时使用的API密钥。实际上,您可能使用了无效的API密钥,或者Google可能错误地将您的API密钥标识为无效。如果您的API密钥长时间未使用,则可能发生后者。

FirebaseInstallations是Firebase服务的新基础架构,它利用您在初始化Firebase时使用的API密钥。如果您最近更新了Firebase SDK,则FirebaseInstallations可能已经开始使用您以前未使用过的API密钥。


补救措施

如果当前的API密钥存在问题,则可以在Cloud Console中创建新的API密钥:

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

google-services.json

如果您正在使用Firebase Console中的google-services.json配置文件,则首先必须删除或限制当前google-services.json中使用的API密钥才能进行Firebase更新配置文件并使用新的API密钥。

  • 在您的google-services.json配置文件中标识API密钥。
  • 通过对照Firebase Installations API metrics page来检查API密钥的用法,以确认API密钥正在创建错误请求。 API密钥的Usage with this service列应显示一个大于0的数字。
  • 通过单击bin符号删除该API密钥,或者通过单击铅笔符号将Application restrictions添加到该API密钥。 !!警告!不要删除应用程序的现有安装对其他Firebase服务(如Firebase Auth或Realtime-Database)所需的API密钥。

请等待几分钟,以更新Google服务器。您的google-service.json配置文件的下一次下载应包含一个新的API密钥。


链接

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

答案 1 :(得分:0)

如果您在 Flutter 应用程序中遇到此问题,那么在更新 google-services.json 文件后,您应该从项目目录中删除 build 文件夹。也许它会奏效。

答案 2 :(得分:0)

就我而言,经过 5 个小时的努力,我终于发现 Firebase 安装通过错误的 API 密钥与 Firebase 服务器通信,该密钥存在于此路径 {{1} 的 values.xml 文件中} 不是 google-services.json 文件中的 API 密钥。

因为,我尝试使用更新后的 google-services.json 运行,但无济于事。

所以您应该删除这个 \app\build\generated\res\google-services\debug\values 文件,它会在您构建和运行时自动使用正确的 API 密钥重新创建。

只需删除此文件并运行即可。

答案 3 :(得分:-1)

我通过将邮件版本降级为最新版本解决了这个问题