Firestore es la base de datos NoSQL más moderna de Firebase. Está pensada para facilitar la sincronización de datos entre dispositivos, ofreciendo métodos para suscribirse a cambios.

En Firestore la información se ordena en colecciones y documentos:
– Una base de datos Firestone puede tener N colecciones.
– Una colección puede contener N documentos.
– Un documento puede tener N campos (de tipo entero, numérico, cadena, booleano, coordenadas…).
– Pero un documento también puede tener a su vez N subcolecciones.

Si nos suscribimos a un documento desde nuestra app, seremos avisados cuando cambie alguno de los campos del documento pero no cuando cambien sus subcolecciones.

Pero nos podemos suscribir a las subcolecciones de un documento por separado. He publicado un ejemplo de esto en github, para un proyecto de app ionic.

En el ejemplo, un documento contiene la información de un usuario (nombre, email…), que a su vez contiene una subcolección de películas. Cada película es un documento con título, año y sinopsis.