Firebase:如何在客户端更改数据库时唤醒App Engine?

时间:2017-03-10 13:24:06

标签: google-app-engine firebase firebase-realtime-database

我在App Engine上运行后端应用程序(仍在免费计划中),它支持Firebase实时数据库设置中的客户端移动应用程序。当客户端对数据库进行更改时,我需要我的后端来检查该更改,并可能计算一些输出。

我可以让我的App Engine实例保持清醒状态并一直监听Firebase端口,等待数据库中任何地方的更改,但这会使我的实例保持全天候醒来并且不支持负载平衡。< / p>

在我切换到Firebase之前,我的客户端会通过发送他们想要执行的更改的REST请求来手动唤醒后端。现在,Firebase允许客户直接进行更改,我希望他们不需要发出手动请求。我可以继续从客户端发出请求,但该解决方案不会很健壮,因为如果由于某种原因请求没有通过,并且用户关闭了该解决方案,它将无法通知服务器客户端成功发送请求之前。 Firebase有自己的机制来保留更改,但我的请求需要类似的机制。我希望有一个比这更简单的解决方案。

有没有办法让Firebase自动生成请求并在更改数据库时唤醒我的App Engine?

3 个答案:

答案 0 :(得分:2)

查看新的(beta)firebase云功能。有了它,你可以运行node.js代码,预处理并在数据库事件上调用你的appengine。

https://firebase.google.com/docs/functions/

答案 1 :(得分:1)

Firebase目前不支持webhook。

查看https://github.com/holic/firebase-webhooks

答案 2 :(得分:0)

来自Listening to real-time events from a web browser

  

将活动发回App Engine

     

App Engine目前不支持双向流式HTTP   连接。如果客户端需要更新服务器,则必须发送一个   显式HTTP请求。

替代方案并不能帮助您,因为它不适合免费配额。但无论如何它在这里。来自Configuring the App Engine backend to use manual scaling

  

要将Firebase与App Engine标准环境一起使用,您必须使用   手动缩放。这是因为Firebase使用后台线程   监听变化和App Engine标准环境允许   长寿命的后台线程仅在手动缩放的后端   实例