我正在尝试获取不同的子集合并使它们适应我的RecyclerAdapter
与 Firebase-UI。
我的Cloud Firestore设置如下:
user:(Collection)
uid1:(Document)
name, email(fields)
data:(Collection)
uid1:(Document)
images:(Collection)
document1
fields
pdf:(Collection)
document1
fields
所以我在想,我不知道如何查询具有相同模型的不同集合并将它们适配到回收器适配器中。
我的实际代码可以检索图像:
private void setupImages(){
Query query = fStore.collection("data").document(userID).collection("images"); //get images collection
FirestoreRecyclerOptions<Data> options = new FirestoreRecyclerOptions.Builder<Data>().setQuery(query,Data.class).build();
FirestoreRecyclerAdapter adapter = new ImageAdapter(options, getContext());
recyclerView.setLayoutManager(new GridLayoutManager(getContext(), 2));
recyclerView.setAdapter(adapter); //adapt the query to adapter
}
该类通过数据模型将数据绑定到视图。
我考虑过创建一个列表并添加项目,但我认为这不是一个好方法,应该还有其他选择。
问题:如何将不同的集合绑定到回收器适配器中而不被替换?
PS:请随意以任何方式发表评论以改进我的数据库。我是新来的!
根据答案:
对,就是那样!
对于这个问题:
所以你想从中获取数据data/userID/images
and data/userID/pdfs
在单个查询中?
答案是,你不能。即使两个集合中的对象相同,您也无法在单个查询中从两个不同的集合中获取数据。 Firestore 中的查询很浅,这意味着您只能从运行查询的集合中获取文档。如果您需要从两个集合中获取文档,则需要创建两个单独的查询。在 Android 中,您可以借助任务来实现这一点当全部成功()方法,正如我在以下帖子中的回答中所解释的:
但是,有一种解决方案可以从多个集合中获取数据,但所有集合/子集合应具有相同的名称。为此,请参阅有关使用的官方文档Firestore 集合组查询.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)