Android - 在收到新的 Firebase 私人消息时发送通知

Android - Sending a notification upon recieving a new private message with Firebase

我正在开发一个应用程序,用户可以在其中互相发送私人消息。 我希望在用户收到新消息时向他发送通知。 我到处都说需要使用 FCM 等云服务。

我正在将每个用户收到的消息存储在 Firebase 数据库中,我想知道为什么以下方法不起作用:

  1. 用户登录后,在用户的已接收消息数据库节点上设置一个 firebase 引用。

  2. 启动一个无限循环的 AsyncTask:

    2.1 设置 OnDataChange 事件以监听用户的 Recieved Messages 节点中的任何变化

    2.2 在 OnDataChange 提醒任何更改时,向登录用户发送一条通知,告知他收到了一条新消息。

这行得通吗?

总的来说,您的建议是可行的。 (正如@int j 所说,虽然不需要无限循环或 AsyncTask)

然而!根据您的建议,用户的电池不会持续很长时间。让监听器一直监听数据库并不是一个好习惯。虽然应用程序在前台很好,但是当应用程序在后台时,您应该取消附加数据库侦听器。这就是为什么您会看到许多建议您使用 FCM 来通知用户消息可用的原因。