未为调试生成生成Firebase消息令牌



在发布时生成构建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安装:Firebase安装无法通信由于配置无效,使用Firebase服务器API。请更新您的Firebase初始化过程,并设置有效的Firebase选项(API密钥、项目ID、应用程序ID(。

这就是我设置它的方式-

  1. 在发布SHA-1的Firebase中创建了我的android项目
  2. 在https://console.cloud.google.com/apis/我已限制自动生成密钥仅与我的应用程序一起使用,提供了带有应用程序包名称的Release SHA-1
  3. API限制:已选择"不限制密钥">
  4. 已启用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()
}
}

到目前为止我已经尝试了什么-

  • 更改键时删除了自动生成的build(和values.xml文件(目录
  • 使用FirebaseOptions设置
  • 发布版本(有效(
  • 如果我的调试SHA-1也在Android应用程序限制中,它就可以工作,但如果我有超过20人在这个应用程序上工作,他们都必须提供他们的调试SHA吗-1.我觉得这不好
  • 如果我删除API(SHA-1版本(的应用程序限制,那么它就起作用了用于调试和发布两者。但我想为我的应用程序限制它只有

预期结果:

  • 应为发布和调试版本生成令牌

自动结果:

  • 没有为调试生成生成令牌

请帮忙,我已经尝试了有关此问题甚至相关问题的所有可用资源。

如果我需要提供任何其他信息,请告诉我。非常感谢。

在Android studio的终端中,使用此命令生成调试密钥库。

keytool -genkey -v -keystore myapp_debug_android.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000 -dname "C=US, O=Android, CN=Android Debug"

其中myapp_debug_android.keystore是文件名。

然后在应用程序的gradle文件中使用此密钥库进行调试签名Configs:

signingConfigs {
release {
... release config
}
debug {
storeFile file('../myapp_debug_android.keystore')
}
}

这将使您的调试构建哈希(SHA(在任何系统上保持不变。