1 MB supera firestore
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
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.
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:
- In una rete bassa il documento non verrà caricato.
- 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.
- 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.