I personally answered that question, and yes, it refers to a list of items. In your case, if an article contains text as well as pictures, I'll indeed add all images to the Firebase Storage and the text to Firestore, and link them as already @FrankvanPuffelen mentioned in his answer. Besides that, as @ToddKerpelman states in the following answer:
Don't add pictures to Firestore. Cloud Storage is meant for that.
Thinking about your use case, to get "over" that limitation, there is another (similar) approach. Instead of trying to save all the data in a single document, I'd add it to multiple documents like this:
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
And as you can see, each article consists of several parts. To get all the articles from the database you have to create a collectionGroup query, that look like this:
db.collectionGroup("articleParts");
To read each article individually, simply concatenate all the parts for each article according to the articleId
and part number.
On the other side, if you only want to read a single article, create a reference that points to:
db.collection("allArticles").document($articleId).collection("articleParts");
And do the same operation as above.
Or you can use:
db.collectionGroup("articleParts").whereEqualTo("articleId", someId);
But here, don't also forget to create an index.
In this way, you can create as many documents as you want for a single article. For Android, I have created a library called FirestoreDocument-Android, which will help you always check the size of a document against the maximum of 1 MiB (1,048,576 bytes) quota. So if the article is bigger than the maximum limitation, split the article and add the content in multiple documents.