Ja osobne odpovedali na túto otázku, a áno, to sa odkazuje na zoznam položiek. Vo vašom prípade, ak článok obsahuje text, ako aj obrázky, budem naozaj pridať všetky obrázky na Firebase Skladovanie a text na Firestore, a prepojiť ich ako už @FrankvanPuffelen uvedené v jeho odpoveď. Okrem toho, ako @ToddKerpelman štátov v týchto odpoveď:
Nechcem pridať obrázky do Firestore. Cloud Storage je určený na to.
Myslenie o vašom používaní prípade, dostať "viac", že obmedzenie je tu ďalší (podobné) prístup. Namiesto toho sa snaží uložiť všetky dáta v jednom dokumente, ja by som ho pridať do viacerých dokumentov, ako je táto:
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
A ako môžete vidieť, každý článok sa skladá z niekoľkých častí. Ak chcete získať všetky články z databázy musíte vytvoriť collectionGroup dotaz, ktorý vyzerá podobne ako tento:
db.collectionGroup("articleParts");
Čítať každý článok individuálne, jednoducho zřetězit všetky diely pre každý článok podľa articleId
a časť číslo.
Na druhej strane, ak si len chcete prečítať jeden článok, vytvoriť odkaz, ktorý ukazuje na:
db.collection("allArticles").document($articleId).collection("articleParts");
A to isté operácie, ako je uvedené vyššie.
Alebo môžete použiť:
db.collectionGroup("articleParts").whereEqualTo("articleId", someId);
Ale tu, nenechajte si tiež zabudnúť na vytvorenie indexu.
Týmto spôsobom môžete vytvoriť ako mnoho dokumentov, ako chcete pre jeden článok. Pre Android, som vytvorili knižnicu s názvom FirestoreDocument-Android, ktoré vám pomôžu vždy skontrolujte veľkosť dokumentu proti maximálne 1 MiB (1,048,576 bajtov) kvóty. Takže ak článku je väčšie ako maximálny obmedzenie rozdeliť článok a pridajte obsah vo viacerých dokumentov.