example data firebase firebase-database tree outline-view nosql

firebase database example



Usar la estructura de árbol de firebase para representar directamente una estructura de "esquema de documento" (0)

¿Qué tan bueno / estúpido sería usar la estructura de árbol de Firebase para representar directamente una estructura de árbol orientada al usuario , como un "esquema de documento" en "procesadores de texto"? A diferencia de, por ejemplo, hacer un tipo de relación padre-hijo SQL-join y luego construir el árbol a través de una proyección (que probablemente sería lenta).

Sé que hay un límite de 32 niveles de anidación ( https://www.firebase.com/docs/web/guide/understanding-data.html ), lo cual debería ser suficiente, ya que no puedo imaginar a un usuario sensato que quiera hacer tantos niveles de anidación para un contorno de árbol textual ... Aunque tal vez necesito dividir 32 por dos, porque cada nodo necesita tener nodos secundarios para sus hijos y metadatos, ¿verdad?

Sé que una vez que se accede a un nodo de árbol a través de Firebase API, deben buscarse todos los nodos secundarios, lo que podría ser un problema de rendimiento si el usuario tiene una gran cantidad de datos, pero al final creo que esto no sería un problema. , ya que la mayoría de los datos serían un texto simple ingresado por el usuario (abreviado).

Un problema de rendimiento podría surgir si el usuario pega trozos muy largos de texto copiado de alguna parte (por ejemplo, decenas de kilobytes). Pero luego podría separar esos "TLOB-s" a través de una especie de "enlace simbólico" en firebase y buscarlos a pedido desde un nodo diferente, ¿no? Lo mismo debería aplicarse para separar imágenes y otros objetos pesados, ¿verdad? Aunque en un prototipo y en etapas tempranas, esto probablemente debería ser ignorado, en aras de la simplicidad ... Probablemente podría poner en práctica un enfoque genérico para el "enlace simbólico", para superar la limitación de 32 niveles y la necesidad de buscar todos los subtítulos. nodos a la vez, ¿verdad? ¿Hay algún enfoque de mejores prácticas para eso (por ejemplo, sintaxis para un nodo de base de fuego que simbolizaría un enlace a otro nodo)? He extraído la idea de "enlace simbólico" a una pregunta separada: Firebase "symlink" a otro nodo .

Probablemente podría dividir los nodos superiores en algunos tipos de proyectos / categorías para evitar tener que recuperar absolutamente todo lo que el usuario haya tenido alguna vez ...

¿Mi razonamiento / enfoque es correcto?

¿Hay alguna consideración que no pensé, por ejemplo, límites innatos en el tamaño o el rendimiento de los datos o, por ejemplo , reglas de seguridad ?

¿Me servirían mejor otras tecnologías como Couchbase / Pouchbase?

Más detalles: esto es para una aplicación móvil híbrida con énfasis también en el acceso web y el acceso sin conexión. Espero hacer la mayor parte de la lógica en Javascript. La parte de la IU de la pregunta está aquí: árbol HTML para la aplicación móvil híbrida .