使用 Firebase 实现推送通知的最佳方式

Best way to implement push notifications with Firebase

我是一名 iPhone 应用编码员,我使用 Firebase 作为我的后端服务器。 Firebase 不支持推送通知,因此我一直在尝试弄清楚如何将它们包含在我的应用程序中。我读过这个问题:How to send an alert message to a special online user with firebase 但它似乎更像是一种变通方法,而不是实际的解决方案。

是否有关于如何执行此操作的答案?是否有第三方或 API 可以无缝地实现此功能?

我尝试过的一种解决方案是使用 Zapier 将 Firebase 连接到 Pushover。

此时,我已经能够在我正在编码的应用程序中观察事件,然后在我的 iphone 上的 Pushover 应用程序中获得通知。然而,理想情况下,我希望在我的应用程序中接收通知,而不是在 pushover 应用程序中,因为我不希望用户需要 pushover 才能使用我的应用程序,因为我希望用户收到他们自己独特的通知,不是每个人的通知。

有人对我应该如何处理这个问题有建议吗?

感谢您的帮助!

编辑 这不是这个问题的重复:Does firebase handle push notifications? 因为我知道 Firebase 不直接处理推送通知。我正在寻找使用 Firebase 处理推送通知的最佳间接方式。

有几个选项:(好吧,不止两个,这里有两个)

Parse 非常非常好地处理推送通知 - 他们对此毫不在意,而且非常简单。但是,您可能会遇到用户和帐户方面的问题 - 取决于您的应用的功能。

您提到了 Pushover。我们曾在他们的 API 工作过一段时间,但不是通过 Zapier。如果我没记错的话,我相信你可以简单地注册你的应用程序,发送一个 HTTPS: 请求到他们的服务器然后通知被发送 from/to 你的应用程序。

另外,您可能想要评估您如何使用推送,因为您可以将 notification-like 事件直接发送到应用程序本身。

这是我从 Firebase 团队得到的答案:

Firebase 目前没有推送通知功能。您可以使用 Firebase Queue 和 GCM 在您的应用中实现推送通知。队列可以在您的 Firebase 应用程序中用于组织工作人员或执行后台工作,例如生成图像缩略图、过滤消息内容和审查数据,或将数据分散到 Firebase 数据库中的多个位置。 Google 云消息 (GCM) 是一项免费服务,使开发人员能够在服务器和客户端应用程序之间发送消息,并且在 iOS 和 Android 中都可用。

您可以使用任何 Firebase 客户端或 REST API 将包含一些数据的对象推送到 Firebase 中的 /queue/tasks 位置。在该位置收听的工作人员将自动接听并处理工作。由此,您的工作人员可以发出 GCM 推送通知。

(来自 Firebase 团队的消息结束)

~~~~~~~~~

这是我的分析:

似乎有一些解决方案,但最好的两个是:

1) 将 FirebaseQueue 与 Google 云消息传递结合使用。

2) 在 Firebase 应用程序中利用 Parse 中的推送通知功能。

我不确定哪个更好。 Parse 似乎更成熟,但 Firebase Queue 已 more-easily 集成到应用程序中(即,Firebase 上的所有内容都很好,而不必设置 Parse 应用程序)

无论如何,我希望这个帖子对其他人有所帮助!

刚刚意识到他们已经出来了:

Batch

现在 Google 将 GCM 更名为 Firebase Cloud Messaging and it now offers this cross platform service. Firebase also offers notifications

以下是这两种服务之间的区别:

Firebase Cloud Messaging provides a complete set of messaging capabilities through its client SDKs and HTTP and XMPP server protocols. For deployments with more complex messaging requirements, FCM is the right choice.

Firebase Notifications is a lightweight, serverless messaging solution built on Firebase Cloud Messaging. With a user-friendly graphical console and reduced coding requirements, Firebase Notifications lets users easily send messages to reengage and retain users, foster app growth, and support marketing campaigns.

如果你想要更详细的比较。阅读 this.

Firebase 现在内置了通知。 https://firebase.google.com/docs/notifications/

如果您希望设备到设备推送消息而不仅仅是服务器到设备,我找到的唯一解决方案是 OneSignal。我能够在大约一个小时内为我的应用添加基本设备到设备推送消息支持,目前它是免费的。

Batch 和 Firebase 都只支持服务器到设备的推送消息,而不是您想要的聊天应用程序

我遇到了同样的问题,不久前设法找到了解决方案。我在以下帖子中详细介绍了我的解决方案 and

您必须创建一个 firebase 数据服务 class 并使用共享实例在应用程序进入后台时将观察者保存在内存中。从那里开始,做你想做的事就好了。