El Sr. Lehenbauer es, por supuesto, el maestro de todas las cosas de Firebase, así que escúchalo. ;) Sin embargo, este tema en particular es uno en el que he estado trabajando durante un par de semanas.
Aquí están algunos de mis pensamientos, para mejorar el "Ejecutar un servidor independiente" y "Consulta del lado del cliente" respuestas:
Elasticsearch (un guión Node.js)
Con una script node.js en el servidor, puede tener ElasticSearch integrado y proporcionar algunas búsquedas de contenido sólido en menos de una hora. Aquí hay una entrada de blog y una librería que hace que sea aún más fácil: https://www.firebase.com/blog/2014-01-02-queries-part-two.html
/consultas comunes cacheables
Estos pueden ser manejados por un proceso de servidor/cron que lee la mesa y duplica los datos. Por ejemplo, supongamos que deseo mostrar "no disponible/disponible" para el nombre de inicio de sesión de un usuario durante el registro, pero almaceno los registros del usuario con una identificación única diferente por algún motivo complejo.
Mi cron/servidor podría leer todos los registros de la tabla de usuarios, luego insertarlos en otra tabla almacenada por correo electrónico, con un valor de identificación de registro del usuario (o cualquier otro dato que yo desee saber) .
Este enfoque de datos duplicados es una técnica de almacenamiento en caché manual y es una práctica común en entornos sin SQL; estamos intercambiando espacio de almacenamiento (que se presume barato y disponible) por la velocidad y los procesos simplificados.
consultas personalizadas (utilizando una cola)
consultas personalizadas podrían ser enviados a través de XHR (Ajax) directamente a un servidor, lo que podría hacer el trabajo duro y volverá mejores resultados. Alternativamente, puede utilizar Firebase para conectarse con un servidor de back-end mediante la utilización de una cola.
El cliente coloca la solicitud de consulta como un JSON en una tabla especial de Firebase llamada queue
y espera una respuesta.
El servidor espera queue.on('child_added', ...)
y sirve los datos de nuevo utilizando `queue_record.child ('respuesta', ... datos aquí ...)
Esto tiene algunas ventajas agradables. Por un lado, cualquier cantidad de servidores podría escuchar y dar respuestas, haciendo que el equilibrio de carga sea muy fácil. El código para esto es muy simple de configurar y covered in another thread aquí en SO.
Espero que ayude esto!
Michael, tiene su equipo hizo cualquier novedad con consulta? –
Sin nuevas características notables. Sin embargo, es posible que le interese esta publicación de blog que hemos publicado recientemente, en la que se describen las mejores prácticas para estructurar sus datos para Firebase, dado que no admitimos consultas similares a las de SQL: https://www.firebase.com/blog/2013- 04-12-denormalizing-is-normal.html –
Ahora hay una publicación en el blog y una nueva versión para el enfoque "Ejecutar como un servidor separado" que muestra lo increíblemente fácil que es integrar ElasticSearch: https: // www. firebase.com/blog/2014-01-02-queries-part-two.html – Kato