2016-07-04 10 views
3

firebaseでnullポインタ例外が発生しています。データベース参照が提供されているような値がないことがわかっていますが、値が生成されると自動的に表示されます。 ただFirebase nullポインタ例外

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) { 

     } 
    }); 

...私を助けてください..... =単一の値が毎回それがfirebase上で作成されたが、そのは、ラインストリングのvalに私にnullポインタ例外を与えていることを得るために

を望んでいます私を助けてください.....してください。

+0

だけの推測のように、ハッシュマップにdataSnapshotを変換することができますが、 'dataSnapshot.child(" myvalue ")'はおそらく原因です... – bwegs

+0

あなたは私がnullポインタの例外を得ることができない何かを私に提案することができます –

+0

私は子供を削除して、 .. –

答えて

1

getValue()を間違った方法で使用しています。値が存在する場合、我々はここでのオフに行くために多くの情報を持っていないので、チェックするために

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

する必要があり、あなたはこの

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) { 

    } 
});