Получить несколько пар ключ / значение из одного ключа - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь получить несколько ключей / значений из моей базы данных 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.

1 Ответ

0 голосов
/ 13 февраля 2019

Я не понимаю, почему ваша структура данных такая.Вы хотите, чтобы такая функция, как один пользователь, могла создавать множество userEmail, userName?Если вы просто хотите сохранить данные каждого пользователя в базе данных лучшей структуры, например:

Users
  -user1
      userEmail:Imad@test.com
      userName:Imad
      userPassword:123456
  -user2
      userEmail:suhail@test.com
      userName:suhail
      userPassword:123456

Это также ваш пользовательский класс, созданный для.

Или вы хотите, чтобы один пользователь мог создать несколько электронных писем.

Users
  -userid1
     -pushId1
         userEmail:Imad@test.com
         userName:Imad
         userPassword:123456
     -pushId2
         userEmail:suhail@test.com
         userName:suhail
         userPassword:123456
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...