2016-07-04 20 views
3

我得到的是firebase中的空指针异常我知道没有任何值像那个数据库引用我给,但我希望当值生成时,它会自动显示... 只是希望得到每次它的火力点创建,但它给我就行字符串VAL空指针异常=该单值.....Firebase空指针异常

请帮我...

final DatabaseReference dtt = database.getReference("/trial/trials/"); 
    dtt.addValueEventListener(new ValueEventListener() { 

     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      String val= dataSnapshot.child("myvalue").getValue().toString(); 
      if(val!=null) 
      { 
       Log.e("not null------","---------------"); 
      }else 
      { 
       Log.e("null------","---------------"); 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 

请帮助我.....请

+0

只是一个猜测,因为我们没有太多的信息,走下车的,但在这里'dataSnapshot.child(“myvalue”)'可能是罪魁祸首... – bwegs

+0

雅娅你能不能建议我somthing我不能得到空指针异常请 –

+0

我试图通过删除孩子,并直接给它在参考仍收到错误.. –

回答

1

您正在以错误的方式使用getValue()。应该

String val= dataSnapshot.child("myvalue").getValue(String.class); 

要检查,如果值存在,你可以dataSnapshot转换为哈希映射,像这样

HashMap<String, Object> hashmap = (HashMap) dataSnapshot.getValue(); 
String val= hashmap.get("myvalue"); 
3
final DatabaseReference dtt = database.getReference("/trial/trials/"); 
dtt.addValueEventListener(new ValueEventListener() { 

    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     String val= dataSnapshot.child("myvalue").getValue(String.class); 
     if(val!=null) 
     { 
      Log.e("not null------","---------------"); 
     }else 
     { 
      Log.e("null------","---------------"); 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 

    } 
});