我可以在firebaseRecycleOptions中使用if (snapShot.hasChild(uid)吗?我正在使用 Firebase 回收适配器来检索节点下的数据:"Groups"


private void RetrieveAndDisplayGroups() {
FirebaseRecyclerOptions<GroupModel> options = new FirebaseRecyclerOptions.Builder<GroupModel>()
.setQuery(FirebaseDatabase.getInstance().getReference().child("Groups"), new SnapshotParser<GroupModel>() {
@NonNull
public GroupModel parseSnapshot(@NonNull DataSnapshot snapshot) {
// I tried to use if statment before return.
return new GroupModel(snapshot.child("groupName").getValue().toString(), snapshot.child("groupDescription").getValue().toString());
}
}).build();
modelAdapter = new GroupModelAdapter(options, getContext());
recyclerExploreGroupView.setAdapter(modelAdapter);
}

所以我正在制作一个群聊应用程序。在我的应用程序中,我只想向用户显示他们创建的组。在数据库中;组";,我拥有所有用户创建的所有组。

我正在使用firebase回收适配器从firebase实时数据库中检索数据。我不熟悉FirebaseRecycleOptions的工作原理。我认为它返回了我传递的一组模型对象。

我尝试在新的firebaseRecycleOptions返回之前使用if语句。但我得到了红线。目标是检查每个小组是否有一个孩子作为要求。并且只取回那些拥有它的人。如有任何帮助,我们将不胜感激。

如果只想在适配器中显示子节点的子集,则应该使用查询从数据库中只检索这些子节点。

在没有看到数据库的情况下很难确定,但在适配器中使用此查询可能是一种选择:

FirebaseDatabase.getInstance().getReference()
.child("Groups")
.orderByChild("groupName")
.startAt(null)

由于null是Firebase实时数据库排序中的第一个值,因此它将返回任何具有groupName值的节点。

最新更新