Javascript 使用多个“where”值查询Firestore字段/值?
我正在考虑让用户在应用程序中跟随其他用户,并从他们跟随的人那里获得一个帖子提要 有没有一种方法可以同时查询多个where语句,或者与列表进行比较?还是需要另一条路线 下面是NodeJS中的一个示例场景:Javascript 使用多个“where”值查询Firestore字段/值?,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,我正在考虑让用户在应用程序中跟随其他用户,并从他们跟随的人那里获得一个帖子提要 有没有一种方法可以同时查询多个where语句,或者与列表进行比较?还是需要另一条路线 下面是NodeJS中的一个示例场景: var usersFollowed = ['GKXgK2CPPGPQjmQ3Lsrh', 'cBjzo3MSjjaOHksVmO0o', 'tc9gMwZR9SiyjWonyCWF']; var followingPosts = await db.collection('posts').whe
var usersFollowed = ['GKXgK2CPPGPQjmQ3Lsrh', 'cBjzo3MSjjaOHksVmO0o', 'tc9gMwZR9SiyjWonyCWF'];
var followingPosts = await db.collection('posts').where('posterUID', '==', usersFollowed.Any()).get();
.任何事情都是虚构的,我想做什么
以下是Firestore中帖子文档的示例:
postID
caption: 'a picture of something'
type: 'picutre'
size: 1
posterUID: GKXgK2CPPGPQjmQ3Lsrh
应该使用运算符:使用in运算符将同一字段上最多10个等式==子句与逻辑OR组合。in查询返回给定字段与任何比较值匹配的文档
var usersFollowed = ['GKXgK2CPPGPQjmQ3Lsrh', 'cBjzo3MSjjaOHksVmO0o', 'tc9gMwZR9SiyjWonyCWF'];
var followingPosts = await db.collection('posts').where('posterUID', 'in', usersFollowed).get();
但是,请注意,最多只能组合10个equality==子句
如果需要组合10个以上的子句,则需要执行几个类似的查询并合并结果。这说明了如何使用JS SDK合并两个查询。您应该使用运算符:使用in运算符将同一字段上最多10个equality==子句与逻辑OR组合在一起。in查询返回给定字段与任何比较值匹配的文档
var usersFollowed = ['GKXgK2CPPGPQjmQ3Lsrh', 'cBjzo3MSjjaOHksVmO0o', 'tc9gMwZR9SiyjWonyCWF'];
var followingPosts = await db.collection('posts').where('posterUID', 'in', usersFollowed).get();
但是,请注意,最多只能组合10个equality==子句
如果需要组合10个以上的子句,则需要执行几个类似的查询并合并结果。这说明了如何使用JS SDK合并两个查询。这不起作用,因为posterUID是一个字符串。我正在更新问题以反映这一点,无论如何谢谢。对不起,我的错误。。。它应该是in操作符。我要重写答案,因为posterUID是一个字符串,所以这行不通。我正在更新问题以反映这一点,无论如何谢谢。对不起,我的错误。。。它应该是in操作符。我要重写答案。