Firebase Firestore – 或查询

如何通过一个字段的多个值获取数据? 例如,我有包含post的数据库,我想查询blogId为1或2的所有post,按时间戳排序。

collection("posts").whereEqualTo("blogId", "1") .whereEqualTo("blogId", 2).orderBy("timestamp", Query.Direction.DESCENDING).limit(50) 

上面的代码不起作用:(

怎么做到这一点? 问候 :)

我无法find任何有关OR条件的OR的能力的文档。 但您可以在blogIdblogId您的要求,如下所示:

 WHERE blogId > 0 AND blogId < 3 

试试这段代码:

 collection("posts") .where("blogId", ">", "0") .where("blogId", "<", "3") .orderBy("timestamp", Query.Direction.DESCENDING) .limit(50) 

您可以组合Observable并返回为一个

 orQuery(){ const $one = this.afs.collection("posts", ref => ref.where("blogId","==","1")).valueChanges(); const $two = this.afs.collection("posts", ref => ref.where("blogId","==","2")).valueChanges(); return combineLatest($one,$two).pipe( map(([one, two]) => [...one, ...two]) ) } getOr(){ this.orQuery().subscribe(data => console.log(data)) } 

尝试这个

 collection("posts").start("blogId", "1") .end("blogId", 2).orderBy("timestamp", Query.Direction.DESCENDING).limit(50)