当前位置: 首页 > 面试题库 >

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

萧宏峻
2023-03-14
问题内容

我在App Startup Stating Logs上收到一条错误消息,例如

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

提前致谢。


问题答案:

如果您的API密钥有问题,则可以在Cloud Console中创建一个新的API密钥:

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

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

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

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

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

  • https://firebase.google.com/support/privacy/init-options
  • https://github.com/firebase/firebase-android-sdk/blob/master/firebase-installations/API_KEY_RESTRICTIONS.md
  • https://firebase.google.com/support/release-notes/android#2020-02-27
  • https://github.com/firebase/firebase-android-sdk/blob/master/firebase-installations/REQUIRED_FIREBASE_OPTIONS_ANDROID.md


 类似资料:
  • 我试图使用Firebase作为我的数据库。我运行了,得到了以下错误堆栈: > C:\用户\蝙蝠脑\桌面\Angular5\GitHub\旅行应用 grpc@1.9.0安装C:\Users\Batbrain\Desktop\Angular5\GitHub\travelapp\node\u modules\grpc 节点预gyp安装--回退到构建--库=静态\u库 节点预陀螺ERR!尝试下载(未定义)

  • Invoke-Neo4j:无法确定行:1 char:281处java.exe的路径 > 尝试{unblock-file-path'e:\soft3\neo4j-community-3.3.5-windows\neo4j-community-3.3.5\bin\neo4j-management*.*'-erroraction'silentlycontinue'}catch{};import-modu

  • Web主要围绕HTTP的请求/响应范例构建。客户端加载网页,然后在用户点击下一页之前没有任何操作。大约在2005年,AJAX开始让网络感觉更有活力。仍然,所有HTTP通信都由客户端引导,这需要用户交互或定期轮询以从服务器加载新数据。 使服务器能够在知道新数据可用的瞬间将数据发送到客户端的技术已存在很长时间了。它们的名称如“Push”或“Comet”。 将套接字引入Web Websocket规范定义

  • 我有一个问题,试图找出最好的方法来完成一个简单的应用程序遵循Android最佳实践。下面是场景: 1)我有一个活动,用户输入一些东西,然后发送到后台服务 我不确定处理这种“事件”的标准方法是什么。您是否必须使用广播监听器和订户或它太多为这个简单的目的?

  • 我从命令行启动Oracle安装程序。路径为: C: \程序文件\ Java\jdk1.8.0\u 131\bin\Java-jar fmw\u 12.2.1.3.0\u wls。罐子 安装完成后,安装。cmd正在启动,并在命令行中显示: 进线过长。意外外观::process\u classpath。C: \Users\User\AppData\Local\Temp\OraInstall2017-1

  • 我想写一个非常简单的API。当我使用邮差API时。我想创建android应用程序,但我的应用程序崩溃了。为什么?哪里是错误