Я пытаюсь получить несколько ключей / значений из моей базы данных firebase, все работает нормально, когда один ключ имеет одно значение, но когда ключ имеет несколько пар ключей и значений (проверьте мою базу данных firebase - прикреплена), я не могу получитьэто в моем приложении.
Моя база данных Firebase
Примечание: 1,2 .... под userEmail, userName и т. Д. Генерируются автоматически, и поэтому мне трудно понять, каксоздать свой класс.
Ниже приведен код, который я пытался выяснить.
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot dataSnapshot1: dataSnapshot.getChildren()){
User h = dataSnapshot1.getValue(User.class);
list.add(h);
}
adapter = new User_Adapter(User_Activity.this, list);
recyclerView.setAdapter(adapter);
}
ниже - мой класс пользователя
public class User {
private String userEmail;
private String userName;
private String userPassword;
public User(){}
public User(String userEmail, String userName, String userPassword) {
this.userEmail = userEmail;
this.userName = userName;
this.userPassword = userPassword;
}
public String getUserEmail() {
return userEmail;
}
public void setUserEmail(String userEmail) {
this.userEmail = userEmail;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
} }
, а ниже -Мой класс адаптера
public class User_Adapter extends RecyclerView.Adapter<User_Adapter.ViewHolder> {
Context context;
ArrayList<User> users;
public User_Adapter(Context c, ArrayList<User> h){
context = c;
users = h;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(context).inflate(R.layout.user_content,parent,false));
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.userEmail.setText(users.get(position).getUserEmail());//.setText(users.get(position).getUserEmail());
holder.userName.setText(users.get(position).getUserName());
holder.userPassword.setText(users.get(position).getUserPassword());
}
@Override
public int getItemCount() {
return users.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
TextView userEmail, userName, userPassword;
public ViewHolder(View itemView) {
super(itemView);
userEmail = (TextView) itemView.findViewById(R.id.account_recycler);
userName = (TextView) itemView.findViewById(R.id.amount_recycler);
userPassword = (TextView) itemView.findViewById(R.id.password_recycler);
}
} }
Мне нужна помощь в понимании того, как изменить структуру моего класса, чтобы можно было прочитать базу данных firebase.