Вы можете использовать существует, чтобы проверить, существует ли путь, который ссылается на вашу ссылку на базу данных
dbreference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
if(!dataSnapshot.exists()){
final Books b1 = dataSnapshot.getValue(Books.class);
// Log.e("Value is ",dataSnapshot.getKey()+" "+b1.getBauthor());
//Log.e("Book"," received");
if(!user.equals(b1.getSelleremail()) || (user.equals(b1.getSelleremail())) ) {
child_count++;
list.add(b1);
staggeredBooksAdapter.notifyDataSetChanged();
progressDialog.dismiss();
}
}else{
progressDialog.dismiss();
Toast.makeText(SubjectBooks.this, "No books found!", Toast.LENGTH_SHORT).show();
Intent in = new Intent(SubjectBooks.this,MainActivity.class);
startActivity(in);
finish();
}
}
существует
exist () возвращает логическое значение
Возвращает true, если этот DataSnapshot содержит какие-либо данные. Это немного
более эффективно, чем использование snapshot.val ()! == null.
Это проверит, есть ли данные внутри пути, на который указывает dbReference
, но не проверит, если дочерние элементы внутри>> 0.
Для этого вы можете проверить после оператора else, есть ли внутри этого узла более 1 дочерний узел
...
}else{
long childrenQty = dataSnapshot.getChildrenCount();;
if(childrenQty > 0 ) {
//We have >= than 1 children to show in our recyclerView :-)
}else{
//Theres nothing inside to show in our recyclerView :-(
progressDialog.dismiss();
Toast.makeText(SubjectBooks.this, "No books found!", Toast.LENGTH_SHORT).show();
Intent in = new Intent(SubjectBooks.this,MainActivity.class);
startActivity(in);
finish();
}
}