Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/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
Android Firestore,从arraylist中调用_Android_Firebase_Google Cloud Firestore - Fatal编程技术网

Android Firestore,从arraylist中调用

Android Firestore,从arraylist中调用,android,firebase,google-cloud-firestore,Android,Firebase,Google Cloud Firestore,我试图列出与ArrayList中的字段字符串值匹配的文档 简单地说: 我在运行时存储了带有标记的ArrayList 以及带有字段标签的文档 我想查询与ArrayList中存储的一个标记匹配的文档。这在正式查询中是可能的,还是我必须下载所有文档并在客户端进行过滤?谢谢你的回答 另外,这是我生成查询的方法: public static Query getQueryForFollowed(DocumentSnapshot snapshots) { if (snapshots == null

我试图列出与ArrayList中的字段字符串值匹配的文档

简单地说:

  • 我在运行时存储了带有标记的ArrayList
  • 以及带有字段标签的文档
我想查询与ArrayList中存储的一个标记匹配的文档。这在正式查询中是可能的,还是我必须下载所有文档并在客户端进行过滤?谢谢你的回答

另外,这是我生成查询的方法:

public static Query getQueryForFollowed(DocumentSnapshot snapshots) {
    if (snapshots == null || !snapshots.exists()) {
        return FirebaseFirestore.getInstance().collection("posts").whereEqualTo("null", "null"); // return query that will get nothing
    }
    ArrayList<String> f = processFollowedTags(snapshots);
    Query query = FirebaseFirestore.getInstance()
            .collection("posts")
            .whereEqualTo("tag", f.get(0));
    for (int i = 1; i < f.size(); i++) {
        query = query.whereEqualTo("tag", f.get(i));
    }
    return query;
}
publicstaticquerygetqueryforfollowered(DocumentSnapshot快照){
if(snapshots==null | |!snapshots.exists()){
return FirebaseFirestore.getInstance().collection(“posts”).whereEqualTo(“null”、“null”);//返回将一无所获的查询
}
ArrayList f=进程跟踪标记(快照);
Query Query=FirebaseFirestore.getInstance()
.收集(“员额”)
.whereEqualTo(“tag”,f.get(0));
对于(int i=1;i
我已调试代码,查询包含请求的条件,但查询未找到任何与之匹配的文档。

尝试此操作

Query query = FirebaseFirestore.getInstance()
            .collection("posts")
            .whereEqualTo("tag", f.get(0)).orderBy("tag", Query.Direction.ASCENDING);;       

在谷歌上搜索了一段时间后,我发现无法将字段查询为多个值

根据:


    • 下面的代码片段可能会对您有所帮助

      fun arrayContainsQueries() {
          // [START array_contains_filter]
          val citiesRef = db.collection("cities")
          citiesRef.whereArrayContains("regions", "west_coast")
          // [END array_contains_filter]
      
      }


      参考:

      从2019年11月起,现在可以使用
      查询中的

      使用in查询,可以查询特定字段中的多个值 (最多10)在单个查询中。您可以通过传递一个包含 您要搜索的所有值都将与Cloud Firestore匹配 字段等于这些值之一的任何文档

      它看起来是这样的:

       Query query = FirebaseFirestore.getInstance()
          .collection("posts")
          .whereIn("tag", f);
      

      能否共享数据库的结构?com.google.android.gms.tasks.RuntimeExecutionException:com.google.firebase.firestore.FirebaseFirestoreException:INVALID_参数:Order by子句不能包含带有相等筛选器标记的字段抱歉,我的应用程序中没有使用Kotlin