2
我想從firebase數據庫中獲取一個簡單的數字。我有一個名爲「追隨者」的數據庫,它的結構像這樣...Firebase數據庫空對象引用
followers: {
{userID}: {
count: 5,
users: { {userID}: true, ... }
},
...
}
簡單的權利。所以,我想獲得「count」對象,並避免在「userID」不存在時引用空對象。所以,我有一個非常簡單的(或至少我認爲這是)設置爲...
DatabaseReference followersDB = FirebaseDatabase.getInstance().getReference("followers").child(user.getUid()).child("count");
followersDB.addListenerForSingleValueEven(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot != null) {
int followersCount = dataSnapshot.getValue(Integer.class);
//put value in view;
} else {
//put 0 in view
}
}
});
人們會認爲,「如果(dataSnapshot!= NULL)」將從得到一個空值參考停止,但是當我跑我在模擬器我得到應用......
顯示java.lang.NullPointerException:嘗試在空對象引用調用虛擬方法詮釋 java.lang.Integer.intValue()'
爲什麼它仍然給我一個空對象引用nce如果我正在測試「if(dataSnapshot!= null)」?有沒有任何可能的方法來檢查,看看它的價值是否在分配之前?我認爲如果就足夠了,但顯然不是。感謝您的時間和幫助。
你從來沒有通過'null'爲'DataSnapshot '參數。要檢查值是否存在,請使用'dataSnapshot.exists()'。 –