【发布时间】:2018-06-01 00:34:05
【问题描述】:
我正在使用 FirebaseUI 从我的实时数据库中获取一些值到 Firebase RecyclerView。所以.. 我的数据看起来像这样:
users:
userid:
info:
Name:Muhammad
我不知道如何获取 Name 的值,这意味着我应该在 Users 类中具体做什么?这是我的代码(我认为问题出在班级用户中,我只是不知道如何访问孩子信息)
public class User {
private String name;
private String email;
private String state;
private String image;
private String thumbnail;
public User(String name, String state, String image) {
this.name = name;
this.state = state;
this.image = image;
}
public User() {
}
public String getName() {
return name;
}
public String getState() {
return state;
}
public String getImage() {
return image;
}
}
我的主要活动 myDB 引用和 on start 方法(在 SUPERCILEX 注释后更新)
mDb = FirebaseDatabase.getInstance().getReference().child(App_Constants.USERS_COLUMN);
@Override
protected void onStart() {
super.onStart();
Query query = mDb;
FirebaseRecyclerOptions<User> options = new FirebaseRecyclerOptions.Builder<User>()
.setQuery(query, new SnapshotParser<User>() {
@NonNull
@Override
public User parseSnapshot(@NonNull DataSnapshot snapshot) {
String Name = snapshot.child(App_Constants.INFO_COLUMN).child(App_Constants.NAME_COLUMN).getValue().toString();
String State = snapshot.child(App_Constants.INFO_COLUMN).child(App_Constants.STATE_COLUMN).getValue().toString();
String Image = snapshot.child(App_Constants.INFO_COLUMN).child(App_Constants.IMAGE_COLUMN).getValue().toString();
User user = new User(Name,State,Image);
return user;
}
}).build();
FirebaseRecyclerAdapter<User,Users_ViewHolder> adapter = new FirebaseRecyclerAdapter<User, Users_ViewHolder>(options) {
@NonNull
@Override
public Users_ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.single_user,parent,false);
return new Users_ViewHolder(view);
}
@Override
protected void onBindViewHolder(@NonNull Users_ViewHolder holder, int position, @NonNull User model) {
holder.Set_Name(model.getName());
holder.Set_Image(model.getImage());
holder.Set_State(model.getState());
}
};
mUsers.setAdapter(adapter);
}
我的 ViewHolder
public class Users_ViewHolder extends RecyclerView.ViewHolder{
View mView;
public Users_ViewHolder(View itemView) {
super(itemView);
mView = itemView;
}
public void Set_Name(String Name)
{
TextView mName = mView.findViewById(R.id.tv_single_user_name);
mName.setText(Name);
}
public void Set_Image(String url)
{
CircleImageView mImage = mView.findViewById(R.id.iv_single_user);
Picasso.get().load(url).placeholder(R.drawable.profile).into(mImage);
}
public void Set_State(String State)
{
TextView mState = mView.findViewById(R.id.tv_single_user_state);
mState.setText(State);
}
}
谢谢
【问题讨论】:
-
This 是一种推荐的方式,您可以通过这种方式从 Firebase 实时数据库中检索数据并使用
FirebaseRecyclerAdapter将其显示在RecyclerView中。 -
mohamed 当你调用
getName()方法时你会得到什么? -
感谢和抱歉迟到了...亚历克斯·马莫问题仍然在于我如何访问信息子项...数据在信息子项中我无法访问它...@eminem 它给了我字段数等于用户数,没错,但名称、状态和图像仍然为空,它无法访问它
-
@AlexMamo 对这个有什么想法吗? :stackoverflow.com/questions/56159855/…
-
@AngelaHeely 我去看看,如果我知道答案,我会写给你。
标签: android firebase firebaseui