Personnellement, j'ai répondu à cette question, et oui, il se réfère à une liste d'éléments. Dans votre cas, si un article contient du texte ainsi que des photos, je vais en effet ajouter toutes les images de la Firebase de Stockage et le texte de Firestore, et le lien entre eux comme déjà @FrankvanPuffelen mentionné dans sa réponse. En plus, comme @ToddKerpelman unis dans la réponse suivante:
Ne pas ajouter des images à Firestore. Stockage dans le Cloud est conçu pour cela.
Penser à votre cas d'utilisation, afin d'obtenir "plus" de cette limitation, il y a une autre (de la même approche. Au lieu d'essayer de sauvegarder toutes les données dans un document unique, j'aimerais ajouter plusieurs documents comme ceci:
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
Et comme vous pouvez le voir, chaque article se compose de plusieurs parties. Pour obtenir tous les articles de la base de données, vous devez créer un collectionGroup requête, qui ressemblent à ceci:
db.collectionGroup("articleParts");
À lire chaque article individuellement, il suffit de concaténer toutes les pièces de chaque article en fonction de la articleId
et le numéro de pièce.
De l'autre côté, si vous voulez lire un article unique, créer une référence qui pointe vers:
db.collection("allArticles").document($articleId).collection("articleParts");
Et faire la même opération que ci-dessus.
Ou vous pouvez utiliser:
db.collectionGroup("articleParts").whereEqualTo("articleId", someId);
Mais ici, ne pas oublier de créer un index.
De cette façon, vous pouvez créer autant de documents que vous le souhaitez pour un seul article. Pour Android, j'ai créé une bibliothèque appelée FirestoreDocument-Android, qui vous aidera à toujours vérifier la taille d'un document par rapport à la concurrence de 1 MiB (1 048 576 octets) quota. Donc, si l'article est plus grand que la limitation maximum, split, l'article et ajouter le contenu de plusieurs documents.