1 MB supera firestore

Oct 17 2020

Sto memorizzando la cronologia dei viaggi (array-map) su Firestore. l'app si blocca (app Flutter) quando si tenta di memorizzare una mappa di un array di grandi dimensioni (la lunghezza dell'array può essere superiore a 10.000). e inoltre ci sono più di 30 campi nello stesso documento.

questa è la mia mappa (elenco di mappe).

  Map<String, dynamic> toMap() => {
        "latitude": latitude,
        "longitude": longitude,
        "accuracy": accuracy,
        "altitude": altitude,
        "speed": speed,
        "speed_accuracy": speedAccuracy,
        "heading": heading,
        "time": time,
      };

C'è qualche soluzione per memorizzare questo tipo di array su Firestore?

Risposte

1 DougStevenson Oct 16 2020 at 22:15

Non è possibile superare la dimensione massima di un documento in Firestore.

Quello che dovresti fare invece è dividere ogni elemento di dati nel proprio documento, probabilmente in una sottoraccolta nidificata sotto un documento principale.

Harkal Oct 16 2020 at 22:48

I documenti firestore hanno un limite massimo di 1 MB di spazio di archiviazione, il che non significa che lo sviluppatore debba riempirlo fino a 1 MB. I documenti più pesanti avranno i seguenti svantaggi:

  1. In una rete bassa il documento non verrà caricato.
  2. Non c'è quasi nessun caso in cui l'utente debba accedere a così tanti dati. Il modello di dati singolo non può soddisfare tutte le esigenze di un'app, quindi i dati devono essere suddivisi in modelli di dati multipli.
  3. Ci sarà più addebito in uscita per la query di dati aggiuntivi.

Quindi devi modellare il tuo database tenendo a mente queste cose. Come accennato da Doug, dovresti suddividere il tuo contenuto in più documenti.