Firebase Offline Storage Advanced - Sincronización manual e información de progreso

Tengo una aplicación donde una característica principal es "Uso sin conexión".

Generamos una Base de datos SQLite en nuestro Servidor que proporcionamos en una API para descargar. Cada vez que la base de datos ha cambiado, los usuarios tuvieron que volver a descargar la base de datos SQLite completa (que actualmente tiene 50 MB y está creciendo en el tiempo).

Intentamos mejorar el Método de actualización que el usuario solo tenía que descargar los archivos Difference-SQL, pero hay algunos problemas (rendimiento, bases de datos corruptas, etc.).

Ahora Google lanzó Firebase y creo que es un buen momento para reemplazar el sistema SQLite con el sistema Firebase.

Pero tengo algunos pensamientos:

¿Puedo descargar toda la base de datos de Firebase para uso sin conexión (no en una aplicación de caché, en un almacenamiento persistente)?¿Puedo hacer un seguimiento del progreso de la sincronización sin conexión y darle al usuario la opción si desea sincronizar ahora o más tarde?¿Puedo restringir la sincronización solo a WIFI?¿Puedo entregar una base de datos de paquete, que después de instalar la aplicación ya puedo consultar datos fuera de línea de Firebase?

Lo que quiero es: Usar Firebase en mi aplicación solo para sincronizar las bases de datos, PERO realizar todas las operaciones sin conexión. Si Firebase no está diseñado para usar esto, ¿cuál es una buena alternativa?

Luego tengo otra pregunta principal con respecto a Firebase:

El almacenamiento JSON es excelente, pero de esta manera no nos importa una estructura única, ¿debemos prestar atención a esto para insertar conjuntos de datos siempre correctos?

Respuestas a la pregunta(1)

Su respuesta a la pregunta