Я продолжаю иметь эту проблему в моем коде. Из приведенного ниже кода, я думаю, я уже проверил, является ли значение load() нулевым. Если он нулевой, код никогда не должен доходить до Пикассо.
Мое приложение позволяет пользователям оставлять комментарии или загружать фотографии на блюдо (например, визг). Тем не менее, они не обязаны размещать оба. Так что там могут быть данные есть только комментарий или фото. Так что я не уверен, что это то, что вызывает проблему.
Это база данных, откуда я хочу получить: 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);}
}
}
}
Мне не нужно использовать Пикассо, если есть какой-то другой более простой способ. Все, что я хочу иметь в своем приложении, это список совпавших фотографий, извлеченных из базы данных.
Измените следующее:
if(dataSnapshot1.child("image").getValue()!=null)
В это:
if(dataSnapshot1.hasChild("image")){ /* code */ }
Из документов:
hasChild(String path)
Может использоваться, чтобы определить, есть ли у этого DataSnapshot данные в определенном местоположении