Android:在库模块中使用 FCM

9
我在集成Firebase Cloud Messaging到库模块时遇到了奇怪的问题。我正在开发一个库项目,需要从库本身处理来自FCM服务器的通知。我不知道是否可能。
我遵循的步骤:
1. 在Firebase控制台上创建项目。 2. 在项目中,使用与我的库包相同的包名创建应用程序。 3. 下载并将google-services.json放入库模块。 4. 在gradle中应用库模块的依赖项。 5. 现在,在应用程序模块中初始化我的库模块。我还可以从FirebaseInstanceIdService获取生成的设备令牌日志。
问题:当我尝试从Firebase控制台发送推送时,我没有收到任何通知。
有人遇到过这样的问题,并能帮助我吗?

你是在发送数据消息还是通知消息?对于数据消息,你需要从应用程序本身显示通知。请参考此链接https://firebase.google.com/docs/cloud-messaging/concept-options - fightingCoder
@fightingCoder 是的,我知道。我已经在MessagingService中放置了日志行,但是我没有找到任何日志。 - Chintan Soni
你是用什么方式发送消息的?使用 FCM 注册令牌还是 Android 应用程序包名称? - fightingCoder
请确保在您的清单文件中实现两个服务。 MyFirebaseMessagingService 和 MyFirebaseInstanceIDService。 第一个用于生成和注册推送 ID,第二个用于处理推送通知。 - Andy Developer
你也试过注册令牌了吗??试一试吧。 - fightingCoder
显示剩余5条评论
3个回答

14

经过很多试错,我成功地获得了通知。

需要注意的事项:

  • 你不能只在库模块中集成Firebase云通知。
  • 将使用此库模块的客户端应用程序模块在其目录中拥有google-services.json文件,而不是在库模块目录中。
  • 客户端应用程序模块gradle中将包含下面这行代码,而不是在库模块gradle中:

apply plugin: 'com.google.gms.google-services'

所以,一旦我进行了这两个更改,我就能够收到通知。


我有同样的问题,我的库模块有Firebase登录,在我的应用程序模块中,我想要访问它,但包名称已更改,因此它会给我错误,并且我想要维护库模块包名称。 - Muhammad Younas
您可以通过在依赖项中添加核心库来将FCM添加到库模块中:dependencies { compile 'com.google.firebase:firebase-core:11.2.0' },而无需应用gms服务gradle插件。 - Diolor
我收到了错误消息,内容为“FirebaseApp初始化失败”。 - RejoylinLokeshwaran
当应用程序模块包与库模块不同时,我会收到“找不到与包名称 blablabla 匹配的客户端”的错误信息。 - Ehsan Mashhadi
有人检查过基于 FCM 的其他服务,例如 One Signal 和 PubNub 是否与 Android 库一起工作吗? - Dushyant Suthar
显示剩余3条评论

0
FCM客户端需要运行Android 2.3或更高版本的设备,同时还要安装Google Play商店应用程序,或者在运行带有Google API的Android 2.3模拟器。
如果您正在使用模拟器,请检查是否已安装Google API。

-1

使用Android Studio集成FCM非常容易, 你只需要, 工具->>Firebase->>在右侧面板上选择云消息。 设置-->Firebase云消息。

然后,您必须遵循1,2,3号点。 并且您还必须将您的应用程序注册到Firebase控制台中,因为您已经有了状态。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接