¿Obtenemos todos nuestros datos de Firebase como caché después de habilitar la capacidad sin conexión en android?
Tengo una duda sobre la capacidad fuera de línea en Firebase android. Después de habilitar la capacidad offline de Firebase,
¿Recibimos todos los datos de nuestra aplicación Firebase incluyendo datos raíz o sólo los datos de usuario registrados como caché ?
final FirebaseDatabase database = FirebaseDatabase.getInstance(); if (database != null) { database.setPersistenceEnabled(true); database.getReference().keepSynced(true); }
Estoy utilizando este fragmento de código para habilitar la capacidad fuera de línea en la clase Aplicación
- OR cláusula en firebase java android
- Firebase Cloud Messaging - ¿Cómo validar Tokens?
- Los eventos de Firebase que no muestran el atributo NAME
- La aplicación de Android se bloquea al conectarse a Firebase
- Android Firebase Cloud Messaging (FCM): ¿SuscribeToTopic hará intentos automáticos?
- Firebase Android addListenerForSingleValueEvent a veces no devuelve datos
- JsonMappingException: No se encontró ningún constructor adecuado
- Firebase Cloud Messaging colapse_key no se ha recibido (tasa limitada?)
Aquí, tengo respuesta para mi pregunta de Firebase Support Team
En realidad, la razón principal, estoy recibiendo todos los datos (incluyendo los datos de usuario iniciados y todos los datos de otros usuarios) de mi aplicación firebase como caché en mi dispositivo, porque estoy usando keepSynced () en el nodo raíz de mi base de datos.
Echa un vistazo en el siguiente fragmento de código, que estoy usando para habilitar la capacidad sin conexión:
final FirebaseDatabase database = FirebaseDatabase.getInstance(); if (database != null) { database.setPersistenceEnabled(true); database.getReference().keepSynced(true); }
Como en el fragmento de código anterior, la referencia de la base de datos hace referencia al nodo raíz de la base de datos.
Ahora, en esta referencia de base de datos, estoy usando el método keepSynced () . Por lo tanto, esto es mantener todos los datos en sincronización como caché en el dispositivo y esto no es una buena cosa que hacer.
Idealmente, deberíamos usar el método keepSynced () en las bases de datos necesarias para que nuestra aplicación funcione sin conexión.
Aquí en el fragmento de código anterior, estoy haciendo un error más que estoy usando setPersistenceEnabled () en la clase de aplicación. Debo mover esto en mi clase de actividad del lanzador.
Según mi fragmento de código anterior, setPersistenceEnabled () se llamará cada vez, cuando la aplicación se iniciará por primera vez. Esto debe utilizarse sólo una vez después de instalar la aplicación.
Podemos llamar a setPersistanceEnabled () como el siguiente fragmento de código para llamarlo una vez.
@Override public void onCreate() { super.onCreate(); if (!FirebaseApp.getApps(this).isEmpty()) { FirebaseDatabase.getInstance().setPersistenceEnabled(true); } }
Lee esto
Al habilitar la persistencia, los datos que el cliente de la base de datos en tiempo real de Firebase sincronizan mientras está en línea persisten en el disco y están disponibles sin conexión, incluso cuando el usuario o el sistema operativo reinicia la aplicación.
enlazar
- ¿Cómo luchar contra las revisiones de spam en Google Play?
- Android Opengl ES motor de mosaico, desplazamiento suave