Picasso IllegalArgumentException目标不得为null:从Firebase检索数据

时间:2019-04-21 05:33:25

标签: java android firebase firebase-realtime-database picasso

我的代码中一直存在此问题。 从下面的代码中,我想我已经检查了load()值是否为null。如果为空,则代码永远不会到达毕加索。

我的应用程序允许用户发表评论或将照片上传到菜肴(例如yelp)。但是,他们不需要同时发布两者。所以可能有数据只有评论或照片。 因此,我不确定是否是导致问题的原因。

这是我要从中检索的数据库:

https://ibb.co/ZNTSFb0 enter image description here

稍微解释一下我的代码:

  • 检查dataSnapshot1是否具有图像值;
  • 如果是,则检查盘名称是否与此盘匹配;
  • 如果是,则将照片放在imageView上。

代码:

mdatabaseReferece1 = FirebaseDatabase.getInstance().getReference("Post");
mdatabaseReferece1.addValueEventListener(new ValueEventListener() {
    @Override
        for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()){
            if (dataSnapshot1.child("image").getValue()!=null){
                if (dataSnapshot1.child("dishName").getValue().toString().equals(newDish)) {
                    ImageView imageView = findViewById(R.id.gallery_photo);
                    Picasso.get().load(dataSnapshot1.child("image").getValue().toString()).into(imageView);
                    gallery.addView(view);}
            }
        }

    }

如果还有其他更简单的方法,我不必使用毕加索。我想在我的应用程序中拥有的只是从Firebase检索到的匹配照片的列表。

1 个答案:

答案 0 :(得分:0)

更改以下内容:

if(dataSnapshot1.child("image").getValue()!=null)

对此:

if(dataSnapshot1.hasChild("image")){ /* code */ }

从文档中

  

hasChild(String path)   可用于确定此DataSnapshot是否在特定位置具有数据