【发布时间】:2020-04-12 10:45:14
【问题描述】:
我正在尝试使用 Firebase-UI 获取不同的子集合并使其适应我的 RecyclerAdapter。
我的 Cloud Firestore 设置如下:
user:(Collection)
uid1:(Document)
name, email(fields)
data:(Collection)
uid1:(Document)
images:(Collection)
document1
fields
pdf:(Collection)
document1
fields
所以我在想,不知道如何用相同的模型查询不同的Collection,并将它们适配到recycler适配器中。
我的实际代码可以检索图像:
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。 -
有 2 个不同的集合是数据的子集合。
data/userID/images和data/userID/pdfs,我错了吗? -
那么您想在单个查询中从
data/userID/images和data/userID/pdfs获取数据? -
是的,就是这样!
-
@Barrufet 我现在也面临同样的问题,但你可以使用 whereIn 函数加入他们,请参阅stackoverflow.com/questions/61162167/…
标签: java android firebase google-cloud-firestore firebaseui