users_data
userID
tasks
taskKey1
taskID
taskName
solved
...
taskKey2
taskID
taskName
solved
...
userID
tasks
taskKey1
taskID
taskName
solved
...
taskKey2
taskID
taskName
solved
...
....
Domains(id, name, user_id)
Categories(id, name)
Articles(id, title, ..., user_id, domain_id, category_id)
Categories(id, name, domain_id)
Оно будет выбирать одну из 100 нерешенных задач. Как только решите ее, поменяйте для нее solved на 1 и тогда следующее обращение ref.orderByChild("solved").equalTo(0).limitToFirst(1)... будет выбирать одну из 99 нерешенных задач и т.д.