I\'m trying to figure out how to structure my data for my exercise app with Cloud Firestore. The data model is as follows:
Structure it like below. Basically, each exercise is a document and then put the sub-collections under it. In my case shown below, I do something very similar with "products".
As for ordering, querying, and indexing the data. That should be easy.
Because all of your data is ordered, you could create your own integer-based exercise ID and query off of it. This ID would be built by a leading "1" then the set #, exercise #, part # and instruction #. Example:
exerciseID: 102030101
"text": "First, do x."
"imageURL": "Set2Exercise3Part1Instruction1.jpg"
exerciseID: 102030102
"text": "Second, do y."
"imageURL": "Set2Exercise3Part1Instruction2.jpg"
exerciseID: 102030103
"text": "Third, do z."
"imageURL": "Set2Exercise3Part1Instruction3.jpg"
Then to query all the instructions, pics, etc. for set #2, exercise #3, part #1 you would include the following line:
exerciseAppInfo.where("exerciseID", ">=", "102030101").where("exerciseID", "<=", "102030103")