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

时间:2016-11-21 02:32:40

标签: javascript node.js firebase firebase-realtime-database

我正在使用Firebase创建一个Web应用程序。应用程序的客户端与我自己的NodeJS服务器通信,如有必要,NodeJS服务器又与Firebase应用程序通信。

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

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

我尝试过包含这样的on函数,但是当数据更新并且服务器崩溃时我收到错误。显然,如果没有明确的请求,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());
    });
});

1 个答案:

答案 0 :(得分:1)

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

链接答案中的方法更容易,并为您带来大部分相同的好处。它也记录在this documentation

Firebase sits between app and back-end

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

我们最近在Firebase开发者峰会上发表了演讲,我们也讨论了这种方法:Develop mobile apps without infrastructure