Firebase空指针异常

时间:2016-07-04 13:33:41

标签: android firebase null-pointer

我在firebase中得到空指针异常我知道没有任何值,就像我给的数据库引用那样但是我希望在生成该值时它会自动显示... 只想在firebase上创建它时获取该单个值,但它在行上给出了空指针异常String val = .....

请帮帮我......

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

        }
    });

请帮帮我......请..

2 个答案:

答案 0 :(得分: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) {

    }
});

答案 1 :(得分:1)

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

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

要检查,如果值存在,您可以将dataSnapshot转换为Hashmap,就像这样

HashMap<String, Object> hashmap = (HashMap) dataSnapshot.getValue();
String val= hashmap.get("myvalue");