I understand that Firestore doesn’t support logical OR for queries.
My idea is to create multiple queries and merge the results at the client.
I am developing a news app and I am trying to fetch all articles that contain my users’ interests tags (ex. technology, music etc)
An average user has 20 tags so I will be making 20 different requests.
Does anyone has experience with chaining multiple requests and returning a unique promise when all results arrive.?
I am using the js sdk
My data structure:
articles (collection)
-article (document)
--id: 10
--time: 1502144665
--title: "test title"
--text: "test text"
--tags(obj)
---technology: 1502144665,
---politics: 1502144665,
---sports: 1502144665
So I will need to create multiple db requests like the following.
user.tags = ["technology","politics","sports","architecture","business"];
for (var i = 0; i < user.tags.length; i++) {
db.collection('articles').where(user.tags[i], '>', 0).orderBy(user.tags[i]))
.get()
.then(() => {
// ... push to article array
});)
}
I am trying to figure out how to create a promise / callback when every request finishes.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…