Java 与Firebase安装服务器API通信时出现Android错误
我在应用程序启动时收到一条错误消息,说明日志如下Java 与Firebase安装服务器API通信时出现Android错误,java,android,firebase,Java,Android,Firebase,我在应用程序启动时收到一条错误消息,说明日志如下 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.",
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云消息传递和其他Firebase服务无法工作。我没有进行编程初始化(也就是说,使用FirebaseOptions对象来提供这些值),只是使用FirebaseApp.initializeApp进行默认初始化(this)代码>
我试过了
提前感谢。我在初始化新应用程序时遇到此错误,因此它可能无法解决您的问题,因为您说您的应用程序已存在,但我希望它能有所帮助
我已为创建了新的SHA密钥(用于调试和签名!仅签名无效)
我已经将它们添加到我的firebase设置中(在我的包名下面,如果有多个,请小心)。现在我可以使用了。如果您的API密钥有问题,您可以在云控制台中创建一个新的API密钥:
- 去医院
- 选择相关项目(即您用于应用程序的项目)
- 打开菜单,进入
api和服务
→ <代码>凭证
+创建凭证
→ <代码>API密钥如果您正在使用中的
google services.json
配置文件,您首先必须删除或限制当前google services.json
中使用的API密钥,以便使Firebase更新配置文件并使用新的API密钥
- 在您的
config文件中标识API密钥googleservices.json
- 通过对照检查API密钥的使用情况,确认该API密钥正在创建错误请求。API密钥的
使用此服务
列应显示大于0的数字
- 通过单击bin符号删除该API键,或通过单击铅笔符号向该API键添加
!!警告不要删除应用程序的现有安装对其他Firebase服务(如Firebase Auth或Realtime Database)所需的API密钥应用程序限制
googleservice.json
config文件应该包含一个新的API密钥
可以使用以下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_key=;
项目_标识符=;
app_id=;
curl-H“内容类型:application/json”-d“{appId:'$app_id',sdkVersion:'t:1'}”https://firebaseinstallations.googleapis.com/v1/projects/$project\u identifier/installations/?key=$api\u key;
有关API密钥和的其他相关链接:
implementation "com.google.firebase:firebase-messaging:20.1.0"
如果在gradle中包含一些未正确配置的firebase模块(分析、存储、消息等),则可能会发生此错误。我遇到了相同的问题,请单击提供的链接:
"links": [
{
"description": "Google developers console",
"url": "https://console.developers.google.com"
}
从那里开始,进入“凭证”菜单
在google-services.json文件中确认正在使用的API密钥
返回google门户,在API密钥下查找该密钥。
找到它后,单击进行编辑,编辑时添加项目的包名称和SHA-1证书密钥
保存并等待5分钟,错误应该消失。我也有同样的问题。我用下面的方法解决了它 转到app/build/generated/res/google services/debug/values/values.xml 在这里您可以找到旧的API密钥 将google_api_key和google_crash_reporting_api_key值替换为可以从google-services.json文件中找到的新值。它将在api密钥数组下
干杯 我也有同样的问题。请查找我为解决此问题而遵循的以下步骤
迟到,但可能对其他人有帮助 我尝试了这里的每一件事,最后我通过确保以下步骤使它起作用 规则:应用程序的SHA-1应该使用API密钥在Google开发者控制台中注册
将使用限制到您的Android应用
,查看SHA-1是否与您的软件包名称一起注册
添加项目
添加应用程序。传递包名和SHA-1并提交
5-10分钟后再次尝试连接firebase API
要修复此错误,请使用CMD或Windows读取此文件