NIJ*_* ku 4 android android-library google-cloud-messaging firebase-cloud-messaging
我无法为 android 库生成 google-services json,因为它要求提供应用程序 ID。我知道如何将它添加到项目中。
图书馆没有应用程序 ID。应用程序 ID 由库的使用者提供。只需包含依赖项即可。不要在图书馆上应用谷歌服务插件。
您的客户可能会遵循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)
}
Run Code Online (Sandbox Code Playgroud)
your.awesome.library.package.fcm.AwesomeLibraryFcm.kt
object AwesomeLibraryFcm {
fun processPushMessage(context: Context, message: RemoteMessage) {
// TODO Your job.
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,将 Firebase 连接到您的库完全由您的库的使用者处理。您根本不会在客户端接触 Firebase。
您需要一个应用程序 ID 来设置 FCM。一个应用程序 ID 只能与一个 Firebase 项目相关联,这将是您库的使用者的 ID。死路。
如果您正在运行在线服务并需要代表您的客户端发送推送消息,您需要他们在 Google Dev Console 中创建服务器密钥(仅限于您服务器的 IP 地址)并将其与项目 ID一起上传到您的服务器。这些将允许您的服务器发送推送消息。这实质上是您的客户允许您代表他们发送推送消息。
注意潜在的安全风险和服务滥用。