先生。 Lehenbauer 当然是 Firebase 的大师,所以听他的。 ;) 然而,这个特定的话题是我已经努力研究了几个星期了。
以下是我的一些想法,以增强“运行单独的服务器”和“客户端查询”响应:
ElasticSearch(一个 node.js 脚本)
通过服务器上的 node.js 脚本,您可以在一小时内集成 ElasticSearch 并提供一些可靠的内容搜索。这里有一篇博文和一个库,可以让它变得更简单:https://www.firebase.com/blog/2014-01-02-queries-part-two.html
可缓存/常见查询
这些可以由读取表并复制数据的服务器/cron 进程处理。例如,假设我想在注册期间为用户的登录名显示“不可用/可用”,但由于某些复杂的原因,使用不同的唯一 ID 存储用户记录。
我的 cron/server 可以从 users 表中读取所有记录,然后将它们插入到由电子邮件地址存储的另一个表中,其中包含用户记录 ID 的值(或我可能想知道的任何其他数据)。
这种重复数据方法是一种手动缓存技术,是 No-SQL 环境中的常见做法;我们正在用存储空间(被认为便宜且可用)来换取速度和简化流程。
自定义查询(使用队列)
自定义查询可以通过 XHR (ajax) 直接发送到服务器,这可以完成繁重的工作并返回更好的结果。或者,您可以利用 Firebase 通过队列与服务器后端连接。
客户端将查询请求以 JSON 格式放入名为 queue 的特殊 Firebase 表中并等待响应。
服务器监听queue.on('child_added', ...)并使用`queue_record.child('response', ...data here...)返回数据
这有一些不错的优势。一方面,任何数量的服务器都可以监听并提供响应,使负载平衡变得轻而易举。设置代码非常简单,covered in another thread 在 SO 中。
希望对您有所帮助!