Я борюсь с этой проблемой уже почти неделю, пробую все, но я не могу с собой поделать ...
Фрагмент должен просто загрузить имя пользователя из узла в Базе данных в реальном времени. Код прекрасно работает в обычном Activity, но в этом фрагменте он не работает.
Я думаю, что слушатель не работает должным образом, но я понятия не имею, почему: /
Я надеюсь, что кто-то может помочь мне, прежде чем я сошел с ума ...
Заранее спасибо !!
База данных реального времени в Firebase выглядит следующим образом:
DatabaseName
Users
UID(Unique User ID)
fullname
username
######
Класс фрагмента, просто conCreateView ()
private FirebaseDatabase mDatabase;
private FirebaseAuth mAuth;
private String currentUserID;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootview = inflater.inflate(R.layout.fragment_profile, container, false);
username_et = (EditText) rootview.findViewById(R.id.profile_username);
email_et = (EditText) rootview.findViewById(R.id.profile_email);
change_btn = (Button) rootview.findViewById(R.id.profile_change_btn);
mAuth = FirebaseAuth.getInstance();
mDatabase = FirebaseDatabase.getInstance();
DatabaseReference mRef = mDatabase.getReference("Users").child(mAuth.getCurrentUser().getUid());
mRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.e("Error","onDataChange fired!");
String username = dataSnapshot.child("username").getValue().toString();
username_et.setText(username);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
final String email = mAuth.getCurrentUser().getEmail();
email_et.setText(email);
return rootview;
}