【发布时间】:2022-01-06 00:01:36
【问题描述】:
在发布版本中生成 FCM 令牌。
在调试中,出现此错误 -
response: [403 Forbidden: {
"error": {
"code": 403,
"message": "Requests from this Android client application com.example.app are blocked.",
"status": "PERMISSION_DENIED",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "API_KEY_ANDROID_APP_BLOCKED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/381175343517",
"service": "firebaseinstallations.googleapis.com"
}
}
]
}
}
]
E/Firebase-Installations:Firebase 安装无法通信 由于配置无效,使用 Firebase 服务器 API。请更新 您的 Firebase 初始化过程并设置有效的 Firebase 选项 (API 密钥、项目 ID、应用程序 ID)在初始化 Firebase 时。
我就是这样设置的-
- 在 Firebase 中使用 Release SHA-1 创建了我的 android 项目
- 在https://console.cloud.google.com/apis/ 我限制了自动生成的密钥 仅用于我的应用,提供带有应用包名称的 Release SHA-1。
- API 限制:选择“不限制密钥”
- 启用 Firebase 安装
使用这段代码获取FCM令牌-
FirebaseMessaging.getInstance().token
.addOnCompleteListener {
if (it.isSuccessful && it.result != null) {
Toast.makeText(this, "Token generated!", Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this, "Token not generated!", Toast.LENGTH_SHORT).show()
}
}
到目前为止我尝试过的 -
- 在更改密钥时删除了自动生成的构建(和 values.xml 文件)目录。
- 使用 FirebaseOptions 进行设置
- 发布版本(有效)
- 在 Android 应用程序限制中也提供了我的调试 SHA-1,它可以工作,但如果我有 超过 20 人在开发这个应用程序,他们都必须提供他们的调试 SHA- 1?我觉得不好。
- 如果我删除 API 的应用程序限制(发布 SHA-1),那么它可以工作 用于调试和发布。但我想为我的应用程序限制它 仅限。
预期结果:
- 应为发布和调试版本生成令牌
实际结果:
- 没有为调试构建生成令牌。
请帮忙,我已经尝试了有关此问题甚至相关问题的所有可用资源。
如果我需要提供任何其他信息,请告诉我。 谢谢!
【问题讨论】:
标签: android firebase firebase-cloud-messaging