3 回答

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊
正如你寫(xiě)的 NullPointerException 上升
String name = dataSnapshot.child("name").getValue().toString();
錯(cuò)誤消息說(shuō)您嘗試.toString()
在空對(duì)象上調(diào)用。您應(yīng)該String name = dataSnapshot.child("name").getValue()
在調(diào)用.toSring()
方法之前保存結(jié)果并檢查它是否為空。

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊
在嘗試從dataSnapshot對(duì)象獲取數(shù)據(jù)之前,您應(yīng)該檢查該數(shù)據(jù)是否確實(shí)存在:
mUserDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) { //Check for existens
String name = dataSnapshot.child("name").getValue(String.class);
String image = dataSnapshot.child("image").getValue(String.class);
String status = dataSnapshot.child("status").getValue(String.class);
String thumb_image = dataSnapshot.child("thumb_image").getValue(String.class);
mName.setText(name);
mStatus.setText(status);
if (!image.equals("default")) {
Picasso.get().load(image).placeholder(R.drawable.default_avatar).into(mDisplayImage);
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
}
});
也最好傳遞String.class給將getValue()其轉(zhuǎn)換為 String 的方法。你不會(huì)再得到任何東西NullPointerException了。

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
用它
store.setUrl((String) snapshot1.child("url").getValue());
store.setName((String) snapshot1.child("name").getValue());
代替
store.setUrl(snapshot1.child("url").getValue().toString());
store.setName(snapshot1.child("name").getValue().toString());
添加回答
舉報(bào)