我可以在客户端和Firebase之间使用自己的NodeJS服务器,并仍然使用“on()”方法吗?

我正在使用Firebase创build一个Web应用程序。 如果有必要,应用程序的客户端会与我自己的NodeJS服务器通信,而后者又会与Firebase应用程序进行通信。

Firebase提供了一些很酷的function,例如on()函数,只要修改了Firebase中的数据,它就会自动更新。

有什么办法让我在我的NodeJS应用程序中使用它,以便我的服务器将更新传递给客户端,而客户端不必直接连接到Firebase?

我已经试过包括这样的函数,但是当数据更新和服务器崩溃时,我得到一个错误。 显然,如果没有明确的请求,Node不能发送另一个响应。 有小费吗?

 app.get('/project/save', function(req, res) { var result = firebase_admin.database().ref().on('value', function(d){ console.log(d.val()); return res.status(200).json(d.val()); }); }); 

您绝对可以在自己的用户和Firebase数据库之间放置自己的node.js服务器。 但是通过这样做,你将扮演应用程序服务器的angular色。 这意味着您还必须为Firebasefunction提供自己的实现/代理,例如on()方法。

链接答案的方法是更容易,并获得大部分相同的好处。 本文档中也有logging :

Firebase位于应用程序和后端之间

因此,您的用户和后端代码(在此情况下运行在App Engine Flexible Environment上,但可以在任何可信任的环境中运行)都是Firebase数据库的客户端。

我们最近在Firebase开发峰会上发表了一个演讲,我们也介绍了这个方法: 开发没有基础设施的移动应用程序 。