【发布时间】:2018-08-08 20:14:57
【问题描述】:
需要根据参数列表获取对象列表,而不仅仅是1个参数。
第 1 步:我们从一个集合 ONE 中获取 uidUser 列表并将其保存为列表 第 2 步:在集合 TWO 中,我只需要从第 1 步的列表中获取文档值相等的那些文档(具有值的对象)。
我想通过将文档名称与列表中的 uid 进行比较来过滤文档。但在 API 中没有找到任何解决方案。 现在也许可以将 uidUser 保存在文档字段中,因此我可以尝试通过将文档字段的键值与列表中的值进行比较来查找。但我不知道怎么做。
我有一个小代码
public void getNeededUsers(List<String> uidList, UsersListCallback usersListCallback){
Query query = db.collection(Consts.COLLECTION_USERS);
for (String uid: uidList) {
query.whereEqualTo("uid", uid);
}
query.get().addOnCompleteListener(task -> {
List<User> userList = new ArrayList<>();
for(DocumentSnapshot snapshot: task.getResult().getDocuments()){
userList.add(snapshot.toObject(User.class));
}
usersListCallback.getUsers(userList);
});
}
【问题讨论】:
-
uidUsers 列表包含数据库中的所有 uid 还是仅包含特定的一个?如果它不包含所有 uid,那么将这些用户包含在该列表中的条件是什么?您说“文件在列表中的值相等”等于属性还是如何?请同时添加您的数据库结构并指明您想要获取的数据。
标签: android firebase google-cloud-firestore