Personalmente ho risposto a quella domanda, e sì, si riferisce a un elenco di elementi. Nel tuo caso, se un articolo contiene testo, immagini, io infatti aggiungere le immagini Firebase di Archiviazione e il testo Firestore, e collegarli come già @FrankvanPuffelen citato nella sua risposta. Oltre che, come @ToddKerpelman stati la seguente risposta:
Non aggiungere immagini a Firestore. Il Cloud Storage è fatta per questo.
Pensando al caso d'uso, per ottenere un "oltre" che la limitazione, c'è un altro (simile) approccio. Invece di cercare di salvare tutti i dati in un unico documento, mi piacerebbe aggiungere a più documenti come questo:
Firestore-root
|
--- articles (collection)
|
--- $articleId (document)
|
--- articleParts (collection)
|
--- $firestoreRandomId
| |
| --- text: "Text of the article"
| |
| --- part: 1
| |
| --- articleId: $articleId
|
--- $firestoreRandomId
|
--- text: "Remaining text of the article"
|
--- part: 2
|
--- articleId: $articleId
E come si può vedere, ogni articolo è composto da diverse parti. Per ottenere tutti gli articoli dal database, è necessario creare un collectionGroup query, che assomigliano a questo:
db.collectionGroup("articleParts");
Per leggere ogni articolo singolarmente, basta concatenare tutte le parti per ogni articolo secondo il articleId
e il numero di parte.
D'altra parte, se si desidera solo per leggere un solo articolo, è possibile creare un riferimento che punta a:
db.collection("allArticles").document($articleId).collection("articleParts");
E fare la stessa operazione precedente.
Oppure è possibile utilizzare:
db.collectionGroup("articleParts").whereEqualTo("articleId", someId);
Ma qui, non dimenticate di creare un indice.
In questo modo, è possibile creare tutti i documenti che vuoi per un singolo articolo. Per Android, ho creato una libreria che si chiama FirestoreDocument-Android, che vi aiuterà a verificare sempre le dimensioni di un documento contro il massimo di 1 MiB (1.048.576 byte) di quota. Quindi, se l'articolo è maggiore del limite massimo, dividere l'articolo e aggiungere il contenuto in più documenti.