java - 通过 documentID 获取多个特定的 FireStore 文档
问题描述
我有一个文档 ID 数组。而且我只想检索 ID 存在于数组中的文档。我想在回收视图中显示它们。
例子:
["rRfuYlrGgLClZui4LmbN", "dKKEdAXHrRSQ7UzvasWQ", "AL5t6DHbLfAmleaO4WCk"]
如果上面是我的数组元素,那么如何只获取这些文档?
解决方案
您可以遍历每个文档 ID 并根据需要检索它们,每个请求都返回一个Task<Snapshot>
.
List<Task<DocumentSnapshot>> tasks = new ArrayList<>();
for (String doc : list_of_Friends) {
tasks.add(FirebaseFirestore.getInstance().collection("MyCollection").document(doc).get());
}
Tasks.whenAllSuccess(tasks).addOnSuccessListener(new OnSuccessListener<List<Object>>() {
@Override
public void onSuccess(List<Object> list) {
//Do what you need to do with your list
for (Object object : list) {
customClass data = ((DocumentSnapshot) object).toObject(customClass.class);
}
}
});
推荐阅读
- ruby-on-rails - 如何覆盖 will_paginate 网址?will_paginate gem 生成错误的 url
- elasticsearch - 如何根据elasticsearch中的条件删除嵌套字段中的特定对象?
- php - 配置为在其他服务器上作为 HTTPS 运行后如何强制 WordPress 使用 HTTP,--not-- HTTPS
- javascript - 使用 Angular 12 使用 js-xlsx 读取本地 Excel 文件?
- specifications - Jolt 组合在一起并包含新标签
- javascript - React:如何将参数传递给父组件
- android - 如何制作可点击的ListView
- sql - 如果某个字段存在,则表的动态联合
- excel - 检查文件夹中是否存在文件后如何将文本写入单元格?
- javascript - 使用画布在spreadJS上进行赛普拉斯测试