Мне нужно найти существующего дочернего элемента внутри случайного ключа, и я использовал OrderByChild () и EqualTo () для фильтрации запросов, но он ведет себя так странно, что иногда он показывает, что дочерний элемент существует только для одного дочернего элемента, а иногда - нет.работа.
![Firebase Structure](https://i.stack.imgur.com/q7nhD.png)
мне нужно проверить, существует ли ребенок (date_expense) "February_2019" или нет?я пробовал это
MainActivity
databaseReference = firebaseDatabase.getReference("Expenses_Details");
expensesaddref = databaseReference.child(username).child("Expense_Month").child(monthyr);
int currentInt=Integer.parseInt(currentdate);
numberToWord((currentInt % 100));
Log.d("date_string",String.valueOf(dateString));
final String date_expense=expensesname +"" + dateString;
final ExpenseClass expenses=new ExpenseClass(expensesname,currentdate,date_expense,totalcost);
expensesaddref.orderByChild("date_expense").equalTo(date_expense).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
Toast.makeText(getContext(), "Expense Already exists!!", Toast.LENGTH_SHORT).show();
}
else {
String key = expensesaddref.push().getKey();
expensesaddref.child(key).setValue(expenses);
showListAdd(expensesname);
Log.d("Adding", "Data Adding");
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
}}
Примечание
если дочерний элемент уже существует в БД, то он должен отобразитьтост, но расходы снова прибавляются, даже если ребенок уже использует в программе db
monthYr
- февраль_2019
Currentdate
- дата настоящего дня
dateString
- это дата в словах (т. Е. Один, одиннадцать, двадцать)
Это структура Firebase, которую получает Iam. date_expense
добавляет, даже если дочерний элемент уже существует ![enter image description here](https://i.stack.imgur.com/0VAfs.png)