onCreate()
안에 아래 메소드를 넣습니다. 앱을 실행하면이 메소드가 실행됩니다. 하지만 ValueEventListener()
외부에서 mName
을 얻으려고하면 null
이 반환되고 앱이 다운됩니다.파이어베이스 검색 데이터 Null 외부 메서드
누구든지이 문제가 발생하는 이유를 알고 계십니까? 중포 기지가 여전히 데이터를 검색하지 않았기 때문에 당신이 시간에 아직이다
ValueEventListener postListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
UserDetails info = dataSnapshot.getValue(UserDetails.class);
Log.d(TAG, String.valueOf(dataSnapshot));
mName = info.getName();
**Log.d(TAG, mName); // HERE GET THE NAME**
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "getUser:onCancelled", databaseError.toException());
}
};
mDatabase.child("Admin")
.child("Info")
.child(uid)
.addValueEventListener(postListener);
**Log.d(TAG, mName); // HERE GET NULL**
대단히 감사드립니다. 대단히 감사합니다. 그러나 이것은 또 다른 질문을 던져줍니다. 어떻게 데이터를 그 자리에서 다른 활동으로 전달할 수 있습니까? onDataChange 메서드 안에 sqlite를 사용하여 데이터를 저장하려고했습니다. 하지만 그것을 검색하려면 응용 프로그램을 닫고 다시 열어야합니다. – user3606920