Возникли проблемы с получением информации о пользователе из firebase android

Код фрагмента профиля

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_profile, container, false);


    Name = (EditText) rootView.findViewById(R.id.Name);
    Email = (EditText) rootView.findViewById(R.id.Email);
    Status = (EditText) rootView.findViewById(R.id.Status);
    Quote = (EditText) rootView.findViewById(R.id.Quote);

    mAuth = FirebaseAuth.getInstance();
    loadUserInformation();
    return rootView;
}

public void loadUserInformation() {

    FirebaseUser user = mAuth.getCurrentUser();

    if (user != null) {
        if (user.getName() != null) {
            Name.setText(user.getName());
        }
        if (user.getEmail() != null) {
            Email.setText(user.getEmail());
        }
        if (user.getStatus() != null) {
            Status.setText(user.getStatus());
        }
        if (user.getQuote() != null) {
            Quote.setText(user.getSQuote());
        }


    }
}

Вспомогательный класс

public class SetUpProfileHelper1 {

public String name;
public String email;
public String status;
public String quote;

public SetUpProfileHelper1(String name, String email, String status, String quote) {
    this.email = email;
    this.name = name;
    this.status = status;
    this.quote = quote;
}

public String getName() {
    return name;
}
public String getEmail() {
    return email;
}
public String getStatus() {
    return status;
}
public String getQuote() {
    return quote;
}

}

Сначала пользователь регистрируется. затем переходит к действию setupprofile, где он заполняет свои данные, такие как имя, адрес электронной почты и т. д. У меня нет проблем с сохранением этих данных в Firebase. Существует активность профиля, в которой пользователь должен иметь возможность просматривать свои данные, такие как имя, адрес электронной почты, которые он предоставил после регистрации. как мне получить данные из Firebase и отобразить их в EditText. Пожалуйста помоги


person Community    schedule 29.12.2017    source источник


Ответы (1)


Предполагая, что ваша база данных выглядит примерно так:

Firebase-root
    |
    --- users
          |
          --- uid1
          |     |
          |     --- //details
          |
          --- uid2
                |
                --- //details

Пожалуйста, используйте следующий код, чтобы получить нужные данные:

String uid = mAuth.getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("ref").child(uid);
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            SetUpProfileHelper1 obj = ds.getValue(SetUpProfileHelper1.class);
            Log.d("TAG", obj.getName());
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
uidRef.addListenerForSingleValueEvent(eventListener);

На выходе будут все имена ваших пользователей.

person Alex Mamo    schedule 30.12.2017
comment
но где упоминается текст редактирования? данные не отображаются в текстах редактирования - person ; 30.12.2017
comment
Я показал вам, как получить данные. Чтобы применить данные к EditText, просто используйте метод setText(). - person Alex Mamo; 30.12.2017