【问题标题】:Making a query for firestore with multiple where clause使用多个 where 子句查询 firestore
【发布时间】:2020-11-14 08:56:29
【问题描述】:

我正在开发一个颤振应用程序,我正在使用 Firestore,但现在要进行搜索,我有一个查询。查询会是这样的

SELECT * 
FROM User 
WHERE age IS BETWEEN 16 TO 40 
  AND gender IS male 
  AND isSearching IS true

我在flutter中写了这个查询的代码是这样的

CollectionReference collection=FirebaseFirestore.instance.collection("Posts").doc(myMood).collection("Comments");

    Query  _searching=collection.where('isSearching',isEqualTo: true);
    Query _gender=_searching.where('gender',isEqualTo: preferredGender);
    Query _ageless=_gender.where('age',isEqualTo: values.start.round());
   Query _agemore=_ageless.where('age',isLessThanOrEqualTo: values.end.round() );

_agemore.get().then((querySnapshots) {
  print(_ageless.toString());
      if(querySnapshots.docs.length == 0)
      {
        print('data is empty');
      }
      else
      {
          print('data found');
      }

  });

我在firestore中手动设置了数据,但我总是给输出数据是空的。 为上述语句写下查询的最佳方法是什么

【问题讨论】:

    标签: firebase flutter google-cloud-firestore


    【解决方案1】:

    您可能需要为此创建一个额外的密钥。通常当您执行查询时,android studio 会抛出错误并为您提供为您的项目创建索引的链接。

    【讨论】:

    • 我已经为它创建了一个索引
    【解决方案2】:

    你可以试试这个

        CollectionReference collection=FirebaseFirestore.instance.collection("Posts").doc(myMood).collection("Comments");
        Query  _searching=collection.where('isSearching',isEqualTo: true);
        Query _gender=_searching.where('gender',isEqualTo: preferredGender);
        Query _agemore=_gender.where('age',isLessThanOrEqualTo: values.end.round() );
        
        _agemore.get().then((querySnapshots) {
        print(_ageless.toString());
        if(querySnapshots.docs.length == 0)
        {
            print('data is empty');
        }
        else
        {
            print('data found');
        
        }
        
    });    
    });
    

    【讨论】:

      猜你喜欢
      • 2021-02-03
      • 1970-01-01
      • 2021-09-12
      • 1970-01-01
      • 2019-10-25
      • 2019-04-05
      • 1970-01-01
      • 2018-06-10
      相关资源
      最近更新 更多