我是 parse.com 用户,现在我正在寻找其他服务。
如何将后端逻辑写入 firebase?
假设我想验证服务器端的所有值,或者触发一些事情。我想到了一种解决方案,但我想知道推荐的方法。
我想
- 创建使用express的nodejs服务器。
- 创建中间件来处理逻辑。
- 从应用程序发送休息请求,触发中间件
- 使用firebase的nodejs sdk根据http请求的params更新值。
- 并在应用程序 firebase 处理程序上实现监听更改
他们的东西更简单?在解析中我使用了云代码,我希望逻辑不在客户端而是在服务器端。
更新(2017 年 3 月 10 日): 虽然我在下面概述的架构仍然有效并且可用于将 Firebase 与任何现有基础设施结合起来,但 Firebase 刚刚发布Firebase 的云功能 https://firebase.google.com/docs/functions/,它允许您在 Google 服务器上运行 JavaScript 函数以响应 Firebase 事件(例如数据库更改、用户登录等等)。
这篇博文对 Firebase 应用程序的常见架构进行了很好的定义Firebase 在您的应用中适合什么位置? https://www.firebase.com/blog/2013-03-25-where-does-firebase-fit.html.
您提出的架构最接近架构 3,其中您的客户端代码直接与 Firebase 对话and直接连接到您的 Node.js 服务器。
我还强烈建议您考虑选项 2,其中客户端和服务器之间的所有交互都通过 Firebase 运行。这种类型的架构的一个很好的例子是手电筒搜索集成 https://github.com/firebase/flashlight。客户将其搜索查询写入 Firebase 数据库。服务器侦听此类请求,执行查询并将响应写回数据库。客户端等待该响应。
该服务器的简单概要如下:
var ref = new Firebase('https://yours.firebaseio.com/searches');
ref.child('requests').on('child_added', function(requestSnapshot) {
// TODO: execute your operation for the request
var responseRef = ref.child('responses').child(requestSnapshot.key());
responseRef.set(result, function(error) {
if (!error) {
// remove the request, since we've handled it
requestSnapshot.ref().remove();
}
});
})
使用最后一种方法,客户端永远不会直接与您的服务器对话,这消除了您必须担心的所有潜在问题。因此,我有时将它们称为“机器人”,而不是服务器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)