首页 > 解决方案 > 如何合并firestore中的任务以创建AND查询?

问题描述

这是用于OR查询任务

请告诉我如何将其转换为AND查询?

    FirebaseFirestore db = FirebaseFirestore.getInstance();

    CollectionReference learnings = db.collection("learnings");

    Task task1 = learnings.whereLessThan("l_fee", MaximumRequiredPrice)
            .get();

    Task task2 = learnings.whereLessThan("l_duration", MaximumRequiredDuration)
            .get();

    Task<List<QuerySnapshot>> allTasks = Tasks.whenAllSuccess(task1, task2);
    allTasks.addOnSuccessListener(new OnSuccessListener<List<QuerySnapshot>>() {
        @Override
        public void onSuccess(List<QuerySnapshot> querySnapshots) {
            for (QuerySnapshot queryDocumentSnapshots : querySnapshots) {
                for (QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots) {
                    Learning learning = documentSnapshot.toObject(Learning.class);
                    result.add(learning);
                    adapter.notifyDataSetChanged();

                }
            }
        }
    });

标签: androidfirebasegoogle-cloud-firestore

解决方案


我在这里看到的问题是,当您只需要一个添加了“where”子句的任务时,您有 2 个任务:

FirebaseFirestore db = FirebaseFirestore.getInstance();

CollectionReference learnings = db.collection("learnings");

Task task1 = learnings.whereLessThan("l_fee", MaximumRequiredPrice)
        .whereLessThan("l_duration", MaximumRequiredDuration)
        .get();

推荐阅读