我是一名iPhone app编码器,我使用Firebase作为后端服务器。 Firebase不支持推送通知,因此我一直试图弄清楚如何将它们包含在我的应用中。我已经阅读了这个问题:How to send an alert message to a special online user with firebase但它似乎更像是一种解决方案而非实际的解决方案。
对于如何做到这一点有答案吗?是否存在可能无法实现此功能的第三方或API?
我尝试过的一个解决方案是使用Zapier将Firebase连接到Pushover。
此时,我已经能够在应用中观察我编码的事件,然后在我的iphone上的pushover应用中收到通知。但是,理想情况下,我希望在我的应用中收到通知,而不是在推送应用中,因为我不希望用户需要进行推送才能使用我的应用,因为我希望用户收到他们自己的不同通知,而不是每个人的通知。
有没有人就如何处理这个问题提出建议?
感谢您的帮助!
修改 这不是此问题的重复:Does firebase handle push notifications?因为我知道Firebase不会直接处理推送通知。我正在寻找使用Firebase处理推送通知的最佳间接方式。
答案 0 :(得分:13)
现在Google将GCM重新命名为Firebase Cloud Messaging,现在它提供了这种跨平台服务。 Firebase还提供notifications。
这些是这两种服务之间的差异:
Firebase Cloud Messaging提供了一整套消息传递 功能通过其客户端SDK和HTTP和XMPP服务器 协议。对于具有更复杂的消息传递要求的部署, FCM是正确的选择。
Firebase Notifications是一种轻量级,无服务器的消息传递解决方案 基于Firebase云消息传递构建。具有用户友好的图形 控制台和降低的编码要求,Firebase通知允许 用户可以轻松发送消息以重新启动和留住用户,培养应用程序 增长,并支持营销活动。
如果您想要更详细的比较。阅读this。
答案 1 :(得分:7)
如果您希望设备设备推送消息而不仅仅是服务器到设备,我找到的唯一解决方案是OneSignal。我能够在大约一个小时内为我的应用程序添加基本设备到设备推送消息支持,目前它是免费的。
Batch和Firebase都只支持服务器到设备推送消息,而不支持聊天应用程序所需的内容
答案 2 :(得分:2)
有几个选择:(好吧,不止一对,但这里有两个)
Parse非常好地处理推送通知 - 它们具有轻微的功能,而且非常简单。但是,您可能会遇到用户和帐户问题 - 具体取决于您的应用的功能。
你提到了Pushover。我们曾经使用过他们的API,但不是通过Zapier。如果我没记错的话,我相信你只需注册你的应用程序,向他们的服务器发送HTTPS:请求,然后从你的应用程序发送通知。
此外,您可能想要评估使用推送的方式,因为您可以将类似通知的事件推送到应用程序本身。
答案 3 :(得分:1)
以下是我从Firebase团队得到的答案:
Firebase目前没有推送通知功能。您可以使用Firebase Queue和GCM在您的应用中实施推送通知。可以在Firebase应用中使用队列来组织工作人员或执行后台工作,例如生成图像缩略图,过滤邮件内容和审查数据,或将数据扇出到Firebase数据库中的多个位置。 Google Cloud Messaging(GCM)是一项免费服务,可让开发人员在服务器和客户端应用之间发送消息,并且可在iOS和Android中使用。
您可以使用任何Firebase客户端或REST API将包含某些数据的对象推送到Firebase中的/ queue / tasks位置。在该位置聆听的工作人员将自动接收并处理该工作。从那时起,您的员工可以进行GCM推送通知。
(来自Firebase团队的消息结束)
~~~~~~~~~
以下是我的分析:
似乎有一些解决方案,但最好的两个是:
1)将FirebaseQueue与Google Cloud Messaging一起使用。
2)在Firebase应用程序中利用Parse中的推送通知功能。
我不确定哪个更好。 Parse看起来更加成熟,但Firebase Queue更容易集成到应用程序中(例如,它很好用Firebase上的所有内容而不必设置Parse应用程序)
无论如何,我希望这个帖子可以帮助其他人!
答案 4 :(得分:1)
刚才意识到他们已经出来了:
答案 5 :(得分:1)
Firebase现在已经内置了通知。 https://firebase.google.com/docs/notifications/
答案 6 :(得分:0)
我遇到了同样的问题,并设法找到了解决方案。我已在以下帖子https://stackoverflow.com/a/44192515/7048719和https://stackoverflow.com/a/42240984/7048719
中详细说明了我的解决方案您必须创建一个firebase数据服务类,并在应用程序进入后台时使用共享实例将观察者保存在内存中。从那里开始,只需要做你想做的事。