Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用多个“where”值查询Firestore字段/值?_Javascript_Firebase_Google Cloud Firestore - Fatal编程技术网

Javascript 使用多个“where”值查询Firestore字段/值?

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

我正在考虑让用户在应用程序中跟随其他用户,并从他们跟随的人那里获得一个帖子提要

有没有一种方法可以同时查询多个where语句,或者与列表进行比较?还是需要另一条路线

下面是NodeJS中的一个示例场景:

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操作符。我要重写答案。