【问题标题】:Picasso IllegalArgumentException Target must not be null: Retrieve data from FirebasePicasso IllegalArgumentException 目标不能为空:从 Firebase 检索数据
【发布时间】:2019-09-10 19:20:44
【问题描述】:

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

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

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

https://ibb.co/ZNTSFb0

稍微解释一下我的代码:

  • 检查dataSnapshot1是否有图像值;
  • 如果是,则检查dishName是否与这道菜匹配;
  • 如果是,则将照片放在 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);}
            }
        }

    }

如果有其他更简单的方法,我不必使用 Picasso。我只想在我的应用中拥有从 firebase 检索到的匹配照片列表。

【问题讨论】:

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


【解决方案1】:

更改以下内容:

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

进入这个:

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

来自文档:

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

【讨论】:

  • 您好,感谢您的回复。我试过“hasChild(String path)”,还是不行,报同样的错误。
猜你喜欢
  • 2015-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-23
相关资源
最近更新 更多