Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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
Java 如何在Firebase云文档的字段中搜索多个值?_Java_Android_Firebase_Google Cloud Firestore - Fatal编程技术网

Java 如何在Firebase云文档的字段中搜索多个值?

Java 如何在Firebase云文档的字段中搜索多个值?,java,android,firebase,google-cloud-firestore,Java,Android,Firebase,Google Cloud Firestore,因此,我正试图在我的android移动应用程序中创建一个最受欢迎的页面。这些产品都属于自己的顶级系列,其结构如下: { "Trainers": { "trainer1": { "brand": "Nike", "name": "Air Force 1", "colour": "Black" "url": ".................." //FOR IMAGES }, "trainer2": {

因此,我正试图在我的android移动应用程序中创建一个最受欢迎的页面。这些产品都属于自己的顶级系列,其结构如下:

{
"Trainers": {
    "trainer1": {
        "brand": "Nike",
        "name": "Air Force 1",
        "colour": "Black"
        "url": ".................."   //FOR IMAGES

    },
    "trainer2": {
        "brand": "Adidas",
        "name": "Yeezy Boost 700",
        "colour": "Black"
        "url": ".................."   
    },
    "trainer3": {
        "brand": "Nike",
        "name": "Air Spiridons",
        "colour": "Cream"
        "url": ".................."   
    }
  }  
 }
然后,我将拥有另一个顶级集合,其中包含以用户id命名的文档,后跟他们最喜欢的培训师名称数组。但是,为了填充收藏夹页面,我需要在用户收藏夹文档中搜索每只鞋的“Trainer”集合

那么回到我的问题,如果User1喜欢“Air Force 1&Yeezy Boost 700”(或者更多的产品),是否可以查询文档“name”字段等于多个值的集合,或者是否有更好的方法来组织收藏夹活动

是否可以查询文档“名称”字段等于多个值的集合,或者是否有更好的方法来组织收藏夹活动

当然可以,使用最多可以包含10个值的数组。根据文件:

类似地,使用array contains any运算符将同一字段上最多10个array contains子句与逻辑
组合

因此,在您的情况下,您应该使用以下查询:

usersRef.whereArrayContainsAny("name", Arrays.asList("Air Force 1", "Yeezy Boost 700"));

很好,这也是我搜索时发现的,但这是唯一的方法吗?因此,它将用户最喜欢的对象限制为10个。对
查询
对象的每次
get()
调用都会返回一个
任务
对象。您可以创建多个此类对象和。如果你需要10个以上的元素,这就是你可以使用的方法。