Dzm*_*rka 6 android google-cloud-messaging firebase-cloud-messaging
根据文件:
不要在客户端代码中的任何位置包含API密钥.
在我们当前的Android应用程序中就是这种情况 - API Key无法包含在代码中.但是,对于新版本的3.0.0 com.google.gms:google-services库,它在Missing api_key/current_key没有它的情况下开始抛出错误,如下所述:缺少使用Google Services 3.0.0的api_key /当前密钥.
此外,Google的配置生成器https://developers.google.com/mobile/add?platform=android&cntapi=gcm在google-services.json文件中包含API密钥.
它应该被保密吗?或者将它包含在客户端应用程序中是否安全?
google-services.json 文件表示 Firebase 中所有可用服务的配置。有一些服务需要“Android”API 密钥。这些是您可以在 google-services.json 文件中找到的 API 密钥。您的应用可能会或可能不会使用这些 API 密钥,具体取决于您的应用使用的 Firebase API。
FCM 有一个用于发送消息的“服务器”API 密钥,此 API 密钥不是包含在 google-services.json 文件中的密钥。服务器 API 密钥不应包含在您的应用程序中。然而,谷歌服务插件会在构建时查找那些 Android API 密钥,这可能是导致您出错的原因,并不是因为您的 FCM 服务器 API 密钥丢失。
如果您使用 GCM,您的 Android 应用程序不需要知道 API 密钥。我只需api_key在 json 文件中包含一个空字段,GCM 就能工作。正如此处的回答Missing api_key/current key with Google Services 3.0.0 and Maps API key in build.gradle 中所述,我只需添加如下行google-services.json即可使 GCM 正常工作:
"api_key": [
{
"current_key": ""
}
],
Run Code Online (Sandbox Code Playgroud)
我认为您不应该包含 API 密钥,因为我认为只有您的服务器需要 API 密钥来向 Google 进行身份验证,以请求其向预期接收者发送推送消息。如果有人拿到了,那就有风险了。所以文件可以如下所示:
{
"project_info": {
...
},
"client": [
{
"client_info": {
...
},
"oauth_client": [
{
"client_id": "yourid.whatever.com",
...
}
],
"api_key": [
{
"current_key": ""
}
],
"services": {
...
}
}
],
"configuration_version": "1"
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
860 次 |
| 最近记录: |