파이어베이스의 리얼타임 데이터베이스에서 값을 가져와 출력하는 걸 하고 있습니다..
아래와 같이 코드를 작성했는데
Memo값은 받아오는데 UserNickName값을 받아오지 못하고 앱이 종료가 됩니다..
Memo는 단순한 텍스트이고,
UserNickName의 경로에는 .child(auth.getCurrentUser().getDisplayName()) 값이 들어있어서 그런것 같은데
UserNickName의 값을 받아오려면 어떻게 해야하나요?
public class RealtimeDatabase extends AppCompatActivity {
TextView textView1 , textView2;
// Button button2 , button3;
FirebaseAuth auth;
DatabaseReference mRootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference mMemo = mRootRef.child("Memo");
DatabaseReference mNickName = mRootRef.child("Users").child(auth.getCurrentUser().getDisplayName()).child("UserNickName");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_realtime_database);
textView1 = findViewById(R.id.textView1);
textView2 = findViewById(R.id.textView2);
// button2 = findViewById(R.id.button2);
// button3 = findViewById(R.id.button3);
}
@Override
protected void onStart() {
super.onStart();
mMemo.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String text = dataSnapshot.getValue(String.class);
textView1.setText(text);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
mNickName.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String text = dataSnapshot.getValue(String.class);
textView2.setText(text);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}