使用Firebase和Google Cloud Messaging进行推送通知

4
我想在我的应用程序(Android)中使用Google Cloud Messaging发送推送通知,后端使用Firebase。由于Firebase不支持内置的推送通知,所以我正在使用Google App Engine。
我对Google App Engine一无所知。目前,我正在使用Google提供的模板发送推送通知。 Google Cloud Messaging模板Github 到目前为止,我已经在Google App Engine上部署了我的应用程序,并且能够向所有已注册设备发送推送通知(从Web获取的HTML页面,当我使用GCM模板时)。
我想要做的是,监听Firebase数据更改,并向未在线或关闭应用程序的用户发送推送通知。
我该如何运行一个Servlet在后台持续运行并向未在线/连接的用户发送推送?
由于我只有在Google App Engine中实现推送通知逻辑,所以我应该使用Servlet还是Struts?
提前感谢。

1
谷歌“Firebase App Engine”,第一个提示指向此教程在cloud.google.com上。它使用Firebase + App Engine发送电子邮件通知。因此,将电子邮件代码替换为您的GCM代码,然后就可以开始了。 - Frank van Puffelen
@FrankvanPuffelen,是的,我看到了,但这让我使用cron.xml来保持对Firebase中数据更改的监听,我想这不太好。 - Bora
那篇教程是由一位曾在应用引擎和Firebase上工作的工程师撰写的。我宁愿相信他的意见,也不愿意自己瞎猜。 - Frank van Puffelen
截至今天(2016年5月19日),Google将GCM重新品牌为Firebase Cloud Messaging,并现在提供此服务作为跨平台服务。它还提供通知。请参见此回答获取完整答案。 - Yair Kukielka
1
现在,您可以使用您的应用程序服务器和 Firebase 向所有或特定设备 / 用户发送推送通知。有关工作示例,请访问此博客文章。http://codingaffairs.blogspot.com/2016/06/firebase-cloud-messaging-push.html - Developine
显示剩余2条评论
1个回答

1

据我所了解,Firebase与GAE的兼容性不太好,因此您可能需要重新考虑选择。

如您所提到的,要监听数据更改,需要应用程序保持后台线程运行。在GAE上执行此操作需要禁用自动缩放,这是GAE的一个重要功能。

您可以创建一个独立的后端GAE模块,并进行手动缩放,然后使其使用例如队列来通知主GAE模块数据更改,但我认为这样做过于复杂和低效。

希望Firebase能够改进其产品,以便以更高效和灵活的方式通知数据更改,但在此期间,也许您应该使用常规计算引擎实例。


谢谢Tom。你说可以使用任何常规计算引擎,你有没有想到哪个与Firebase兼容性好的? - Bora
我认为谷歌使用Firebase的目标之一是使其能够与任何语言/平台良好配合,但最容易使用的可能是计算引擎,而且由于您将其标记为“android”,因此最好坚持使用Java。 - Tom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接