【问题标题】:Firebase null pointer exceptionFirebase 空指针异常
【发布时间】:2016-07-04 13:33:40
【问题描述】:

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

        }
    });

请帮帮我.....拜托..

【问题讨论】:

  • 只是猜测,因为我们没有太多信息可以从这里得到,但dataSnapshot.child("myvalue") 可能是罪魁祸首...
  • 是啊,你能建议我一些我不能得到空指针异常的东西吗
  • 我试过删除孩子并直接在参考文献中给出它仍然出错..

标签: android firebase null-pointer


【解决方案1】:
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) {

    }
});

【讨论】:

    【解决方案2】:

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

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

    要检查是否存在值,您可以将 dataSnapshot 转换为 Hashmap,如下所示

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      相关资源
      最近更新 更多