【问题标题】:Why would one choose Firebase Cloud Messaging instead of an Intent Service?为什么要选择 Firebase 云消息传递而不是 Intent 服务?
【发布时间】:2025-11-30 02:05:02
【问题描述】:
我正在创建一个具有聊天功能的安卓应用。如果聊天未打开时有新消息到达,我想创建一个通知。我的消息存储在 firebase 数据库中。我看到创建这些通知的两个选项。一种是使用firebase函数触发firebase云消息。另一种是使用运行 onChildAdded 事件处理程序的 Intent 服务。 Intent Service 对我来说似乎更容易。我错过了什么吗?在运行事件处理程序的情况下,通过 Intent 服务使用云消息传递的充分理由是什么?
【问题讨论】:
标签:
android
firebase
firebase-realtime-database
firebase-cloud-messaging
【解决方案1】:
如果您担心您的服务会一直运行(并耗尽您的电池),那么这是使用云功能的好理由。此外,您的服务可能会被终止。
因为一般只有几个进程
对用户可见,这意味着不应终止该服务
除非在内存不足的情况下。但是,由于用户不是
直接知道后台服务,在那个状态下它被认为是
一个有效的候选人,你应该为此做好准备
发生。特别是,长期运行的服务将越来越多
可能会杀死并保证会被杀死(如果
合适)如果它们保持启动足够长的时间。
最后,将结果交付给活动所必须经历的所有工作可能与开发云功能一样痛苦。
在我工作的公司,我们决定使用云功能,这很容易。我们只需要跟踪设备的 FCM 令牌,我们的函数就会监控实时数据库中的某个节点。每次有人在那里写信时,我们都会收到警告并能够对其采取行动(抓住节点,识别发送者和接收者,并使用保存的 FCM 令牌发送通知)。我们已经使用这个tutorial 来实现我们想要的。关于如何编写云函数的一些链接,here,here 和一个我也使用过的 So question here。官方docs也是。