gpt4 book ai didi

java - 是否可以在 android 中合并未知数量的 firestore 查询?

转载 作者:行者123 更新时间:2023-11-30 10:02:31 26 4
gpt4 key购买 nike

This答案涉及如何将两个查询合并在一起,我想这可以对任意数量的已知查询完成。但是,我有一个值数组,我想用它来过滤包含具有这些值的字段的文档(它是所有值的相同字段)。上面链接的方法似乎不足以达到此目的。

我尝试使用 new 运算符创建一个查询数组,但这不起作用,因为 Query 是私有(private)的。

Query query = db.collection("posts")
.whereEqualTo("userId", followingList)//followingList is a list of Strings that I want to query
.orderBy("imageUrl_1", Query.Direction.ASCENDING);

这不起作用,因为 followingList 不是 String

我如何尝试创建一个不起作用的查询数组:

ArrayList<Query> list = new ArrayList<Query>();
for(String s : followingList){
list.add(new Query());//does not compile
}

enter image description here我的 Firestore 的这张图片显示了 followingList 是如何创建的。当用户点击关注另一个用户的帖子时,它会更新。我想要做的是创建一个查询所有帖子(包含在一个单独的集合中),这些帖子包含 followingList

中包含的 userIs

最佳答案

我已经在我当前的项目中对此进行了测试,它工作正常(仅测试了两个具有 2 个元素的 followingList.size 的文档)

public void testMy() {
db = FirebaseFirestore.getInstance();
List<String> followingList = new ArrayList<>();
followingList.add("tag1"); followingList.add("tag2"); followingList.add("tag3"); // ...
List<Task> taskList = new ArrayList<>();

for (String s : followingList) {
Query query = db.collection("invites")
.whereEqualTo("uid", s)
.orderBy("imageUrl_1", Query.Direction.ASCENDING);; //followingList is a list of Strings that I want to query
Task<QuerySnapshot> task = query.get();
taskList.add(task);
}

Tasks.whenAllSuccess(taskList.toArray(new Task[taskList.size()])).addOnSuccessListener(new OnSuccessListener<List<Object>>() {
@Override
public void onSuccess(List<Object> objects) {
@SuppressWarnings("unchecked")
List<QuerySnapshot> querySnapshots = (List<QuerySnapshot>)(List<?>) objects;
for (QuerySnapshot qs : querySnapshots) {
for (QueryDocumentSnapshot qds : qs) {
Log.d(TAG, qds.getData().toString());
}
}
}
});
}

关于java - 是否可以在 android 中合并未知数量的 firestore 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56877715/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com