无法为Android库生成google-services json,因为它要求提供应用程序ID。我知道如何在项目中添加它。
答案 0 :(得分:3)
库没有应用程序ID。应用程序ID由您的库的使用者提供。只需包含依赖关系即可。不要在库中应用google服务插件。
您的客户可能会遵循https://firebase.google.com/docs/cloud-messaging/android/client教程。这意味着您必须创建库的推送消息处理器,客户端将委派给您工作。例如:
<强> your.client.app.package.fcm.MyFirebaseMessagingService.kt 强>
class MyFirebaseMessagingService() : FirebaseMessagingService() {
override fun onMessageReceived(p0: RemoteMessage) {
super.onMessageReceived(p0)
// Your client's message handling.
// ...
// If not handled by client, delegate to library.
AwesomeLibrary.processPushMessage(this, p0)
}
<强> your.awesome.library.package.fcm.AwesomeLibraryFcm.kt 强>
object AwesomeLibraryFcm {
fun processPushMessage(context: Context, message: RemoteMessage) {
// TODO Your job.
}
}
正如您所看到的,将Firebase连接到您的库完全由您的图书馆的消费者处理。您根本不会在客户端触摸Firebase。
您需要一个应用程序ID来设置FCM。一个应用程序ID只能与一个Firebase项目相关联,该项目将是您的图书馆消费者的项目。死路一条。
如果您正在运行在线服务并需要代表客户发送推送消息,则需要他们创建服务器密钥(仅限于服务器的IP地址)在Google Dev控制台中,并将其与项目ID 一起上传到您的服务器。这些将允许您的服务器发送推送消息。这基本上是您的客户授予您代表他们发送推送消息的权限。
注意潜在的安全风险和滥用您的服务。
答案 1 :(得分:0)
我将FCM集成到库项目中,并在新的应用程序项目中使用了该库。
我从库中复制了Google服务json文件,并将其粘贴到新应用程序项目的应用程序模块中。
之后,我修改了这个Google服务json
文件。我在"package_name"
下将"client_info"
重命名为应用程序包名称,并能够收到通知。