我把下面的方法放在onCreate()
裏面,當應用程序啓動時它會觸發這個方法。但是,當我嘗試在ValueEventListener()
之外獲得mName
時,它將返回null
並且應用程序崩潰。Firebase檢索數據空外部方法
任何人都知道爲什麼會發生這個問題?
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