我正在使用Activity来展示除我的用户之外的所有其他应用用户以及我使用带有Firebase的Java android。
但我无论如何都无法从DatabaseReference或FirebaseRecyclerAdapter中排除项目。
我的活动看起来像这样
我的数据库看起来像这样:
此活动中的代码如下所示:
@Override
public void onStart() {
super.onStart();
database = FirebaseDatabase.getInstance();
myRef = database.getReference().child("users");
FirebaseRecyclerAdapter<Users,RecyclerViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Users, RecyclerViewHolder>(Users.class , R.layout.users_single_layout ,RecyclerViewHolder.class,myRef ) {
@Override
protected void populateViewHolder(RecyclerViewHolder viewHolder, Users model, int position) {
viewHolder.setDisolayName(model.getDisplay_name());
viewHolder.setStatus(model.getStatus());
viewHolder.setImage(model.getImager_thumb(), getContext());
frinds_relative.setVisibility(View.INVISIBLE);
final String users_id = getRef(position).getKey();
viewHolder.mview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent target = new Intent(getActivity() , user_profile.class);
target.putExtra("profile_id" , users_id) ;
startActivity(target);
}
});
}
};
users_recycler.setAdapter(firebaseRecyclerAdapter);
}
如果您有解决方案,我将感激不尽。
答案 0 :(得分:0)
FirebaseUI FirebaseRecyclerAdapter
直接表示基础Query
中的数据或存在于Firebase数据库中的某个位置。要从适配器中排除某个项目,您必须先将其从Firebase位置排除,或确保它不再与该特定查询匹配。
要实现此目的,您可以使用以下代码行:
yourAdapter.getRef(position).removeValue();
答案 1 :(得分:0)
我曾经遇到过类似的事情,我是怎么做到的。
第一件事是在users_single_layout xml文件中提供父布局和ID。 在视口中引用父布局; 然后通过以下方式隐藏文件的所有内容:
android:visibility="gone"
完成后,在FirebaseRecyclerAdapter中设置if语句: 检查以下代码:
users_recycler = new FirebaseRecyclerAdapter<Users,RecyclerViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Users, RecyclerViewHolder>(Users.class , R.layout.users_single_layout ,RecyclerViewHolder.class,myRef ) {
@Override
protected void populateViewHolder(RecyclerViewHolder viewHolder, Users model, int position) {
if (adapter.getRef(position).getKey.equals(currentUid){
viewholder.thelayout.setVisibility(View.GONE);
} else {
viewHolder.setDisolayName(model.getDisplay_name());
viewHolder.setStatus(model.getStatus());
viewHolder.setImage(model.getImager_thumb(), getContext());
frinds_relative.setVisibility(View.INVISIBLE);
final String users_id = getRef(position).getKey();
viewHolder.mview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent target = new Intent(getActivity() , user_profile.class);
target.putExtra("profile_id" , users_id) ;
startActivity(target);
}
});
}
}
};
users_recycler.setAdapter(firebaseRecyclerAdapter);