Ionic 2 是否支持私人和 public Firebase 通知?

Does Ionic 2 support private & public Firebase notifications?

最近几天我正在考虑处理 firebase 通知,但我想对这几个问题进行一些回答:

  1. Ionic2 是否支持 firebase 通知?

  2. 当我的应用程序关闭时,通知会显示在屏幕顶部还是应该在后台运行?

  3. firebase 通知是否按时发送或可能需要很长时间?

  4. 如果我假设 Ionic 2 可以发送私人通知(仅限我的设备),那么我可以向所有应用程序用户发送 public 通知吗?

如果所有问题的答案"yes",希望你给我任何可能对我有帮助的有用链接(如果你有时间的话)

  1. 是的,它可以与 FCM(Firebase 云消息传递,又名 GCM - Google 云消息传递)配合使用。它支持通过 HTTP 客户端订阅主题和设备到设备的通知。主题订阅和设备到设备都需要 FCM plugin.

  2. 是的,它们会作为任何推送通知出现在您的设备屏幕顶部,您只需要编写代码在收到通知后的行为方式,例如如果通知是执行某事点击,或者在收到它并且应用程序已经打开(前台)时执行某些操作,这一切都取决于您。

  3. 它按时发送,我从来没有遇到延迟问题,发送通知和我在设备中收到的通知所花费的时间越长,为 10 秒。但据我所知 "stores" 你的通知有效期为 24 小时,因此如果服务器出现故障或发生某些事情,通知的有效期为 24 小时。

  4. 如第一个回答所述,您可以为您的用户订阅主题。假设您想要一个主题来发送消息以便所有用户都能收到,您可以有一个 all 主题,或者一个仅供登录用户使用,一个仅供购买产品的用户使用,您甚至可以获得所有用户令牌和一个一个发送,但最好让他们订阅主题。

    可以通过 Firebase 项目控制台发送主题通知。设备到设备由您的应用程序代码发送。

    要在设备之间发送,您需要一个令牌,它由 FCM 插件(上面的 link)提供,您需要将此令牌存储在某个地方,比如在您的用户节点中火力基地。我通常使用 Device plugin 提供的用户设备 ID 来获取他的令牌,因为用户可以拥有多个设备并同时登录,这将防止令牌被覆盖。

我不知道关于使用 Firebase 配置 FCM 的好教程,如果我找到一些东西,我会编辑问题并为你添加它,但坚持使用 ionic native link 和 FCM 插件 github页。

希望对您有所帮助。

加布里埃尔的回答补充:

  1. 通知的默认行为是显示在屏幕的顶部。我以前没有在 Ionic 上工作过,但是据我所知,这种行为应该与 Android.

    相比

    话虽如此,您应该参考 FCM 文档的 Handling Messages 部分。

  2. 需要考虑的因素可能会影响设备接收消息所需的时间,但作为 FCM 的行为,它会尽可能快地发送消息(看我的回答).

  3. 将进一步逐条列出:

    • 仅限特定设备 - 是的。发送消息时,只需指定应接收该消息的注册令牌。
    • 所有设备 - 是的。您可以使用 Firebase 通知控制台。但是,如果您打算使用 REST API 发送消息,则必须确保设备已根据您的自定义 global 主题进行订阅。

关于Gabriel提到的device-to-device,我认为应该表述为server to specific device(s)