es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Se cuenta como nuevas lecturas en Firstore la frecuencia de lectura de los mismos datos?

Supongamos que tenemos un ListView.builder que obtiene datos de Firstore.

Widget build(BuildContext context) {
    return FutureBuilder(
      future: FirebaseFirestore.instance.collection('users').get(),

    builder: (BuildContext context, AsyncSnapshot snapshot) {


    if (!snapshot.hasData) {
    return const Expanded(child: SizedBox()) ;
    }
      return ListView.builder(

    itemCount: snapshot.data!.docs.length ,
    itemBuilder: (context, int index) {
    DocumentSnapshot documentSnapshot = snapshot.data!.docs[index];

    return ListView.builder(
    itemCount: snapshot.data!.docs.length ,
    itemBuilder: (context, int index) {
    DocumentSnapshot documentSnapshot = snapshot.data!.docs[index];
    return Text(documentSnapshot['products'])
    }
    );

  }
}

Ok. Acabo de leer estos datos que son productos .. y luego abro la misma página nuevamente donde se encuentra FutureBuilder en la clase stfl, ¿Esto contará como una nueva lectura? Incluso si los datos no han cambiado

En otras palabras, ¿Si la clase stfl vuelve a buscar los datos, se calculará una nueva lectura cada vez que el usuario abra la misma página muchas veces?
¿Y lo mismo con StreamBuilder?
¿Debería evitar esto con intervención del software para obtener los datos una vez de alguna manera, como obtener los datos una vez al principio del lanzamiento de la aplicación en lugar de obtenerlos en la clase general que los usuarios navegan muchas veces?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, cada vez que el usuario abra la misma página donde se encuentra FutureBuilder o StreamBuilder, se contará como una nueva lectura aunque los datos no hayan cambiado. Por lo tanto, es mejor evitar lecturas innecesarias obteniendo los datos una vez al comienzo del lanzamiento de la aplicación y almacenándolos en una solución de gestión de estado como Provider o Bloc, en lugar de obtenerlos en la clase general que los usuarios navegan muchas veces. Esto asegurará que minimices el número de lecturas en la base de datos Firestore y mejores el rendimiento de tu aplicación.

Comments are closed.