final String dataCompare=sb.toString();
databaseReference = firebaseDatabase.getInstance().getReference().child("ingredients");
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String iName1 = dataSnapshot.child("ing01").child("iName");
String iName2 = dataSnapshot.child("ing02").child("iName");
//now here you can compare both the iName values with the dataCompare object.
}
}
**** РЕДАКТИРОВАТЬ ****
final String dataCompare=sb.toString();
Log.d("DataCompare: ", dataCompare);
databaseReference = firebaseDatabase.getInstance().getReference().child("ingredients");
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.getChildren() == null) {
Log.d(TAG, "onDataChange: snapshot has no children");
} else {
int i = 1;
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String iName = ds.child("ing0" + i++).child("iName").getValue();
// if this doesn't work try this --
// String iName = ds.child("iName").getValue();
Log.d(TAG, "name value: " + iName);
if (iName.equals(dataCompare)) {
Log.d(TAG, "onDataChange: string equals");
} else {
Log.d(TAG, "onDataChange: strings are not equal");
}
}
}
}
}
Внутри метода onDataChange()
я написал: -
String iName = ds.child("ing0" + i++).child("iName").getValue();
здесьмы читаем дочерний «ing01» (в первой итерации цикла) datasnapshot, который в данный момент находится в «ингридиентах», а затем читаем «iName» и его значение в iName
строковый объект.
для каждого цикла будет делать это для всех потомков dataSnapshot
, что означает для всех данных, которые у вас есть в вашей базе данных firebase.