Как я могу получить данные вошедшего в систему пользователя из базы данных Firebase - PullRequest
0 голосов
/ 10 июня 2018

Мне нужна помощь в этом коде.

Как я могу получить зарегистрированные данные пользователя из базы данных firebase?

Вот мои коды:

public void getUserInfo(){
    mFirebaseDatabase = FirebaseDatabase.getInstance();
    mUserDatabase = mFirebaseDatabase.getReference("users");
    FirebaseUser user = mAuth.getCurrentUser();
    mUserDatabase.child(userID).addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange( com.google.firebase.database.DataSnapshot datasnapshot) {
            for (DataSnapshot dataSnapshot : datasnapshot.getChildren()) {
                User user1 = dataSnapshot.getValue(User.class);

                String firstname = user1.getFirstName();
                String secondname = user1.getSecondName();
                String email = user1.getEmail();
                String enrollment = user1.getEnrollnumber();
                String branch = user1.getBranch();
                String college = user1.getCollege();

                First_name.setText(firstname);
                Second_name.setText(secondname);
                tx_Email.setText(email);
                Enroll_number.setText(enrollment);

            }
        }
        @Override
        public void onCancelled(DatabaseError firebaseError) {
            /*
             * You may print the error message.
             **/
        }
    });

}

Буду признателен за любую помощь!

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

попробуйте это, в моем случае моя база данных в firebase называется «Users», с, а userID - это идентификатор каждого пользователя, используя этот ID пользователя, я фильтрую данные каждого примера пользователя (имя, адрес электронной почты ... и т. Д.)

Вам нужно написать for для итерации всех полей и после этого получить нужную вам позицию, например position [0] = name, position [1] = email ... etc

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
    DatabaseReference idRef = rootRef.child("Users").child(userID);

final List<String> lstItems= new ArrayList<String>();
for(DataSnapshot ds : dataSnapshot.getChildren()) {
    String values = (String) ds.getValue();
    lstItems.add(values);
}

Log.d(TAG, "NAME: " + lstItems.get(0).toString());
Log.d(TAG, "EMAIL: " + lstItems.get(1).toString());

и распечатать их

email = lstItems.get(0).toString();
name = lstItems.get(1).toString();

Надеюсь, это поможет вам

0 голосов
/ 10 июня 2018

Насколько я вижу, вы присоединяете слушателя к данным одного пользователя.Это означает, что вам не нужно зацикливаться на dataSnapshot.getChildren() в onDataChange.

Итак:

public void onDataChange( com.google.firebase.database.DataSnapshot snapshot) {
    User user1 = snapshot.getValue(User.class);

    String firstname = user1.getFirstName();
    String secondname = user1.getSecondName();
    String email = user1.getEmail();
    String enrollment = user1.getEnrollnumber();
    String branch = user1.getBranch();
    String college = user1.getCollege();

    First_name.setText(firstname);
    Second_name.setText(secondname);
    tx_Email.setText(email);
    Enroll_number.setText(enrollment);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...