Чтобы решить эту проблему, вам нужно изменить структуру базы данных. Вы не можете запрашивать вашу базу данных, так как ваши узлы генерируются динамически. Как упомянул @FrankvanPuffelen в своем комментарии, узлы, которые вызывают у вас проблемы: 04Jul2018
с dcbch...
и 05Jul2018
с hello
. Поскольку Firebase может возвращать только результаты, которые находятся по фиксированному пути под каждым дочерним узлом узла, для решения этой проблемы я рекомендую создать дату как свойство. Вот как это можно сделать и как должна выглядеть структура вашей базы данных:
Firebase-root
|
--- dcbch..._dkjh...
|
--- Prof
|
--- email: "profeamil@gmail.com"
|
--- name: "prof"
|
--- present: true
|
--- date: 1530784439 //Current timestamp
А вот соответствующий запрос:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
Query query = rootRef.orderByChild("Prof/name").equalsTo("prof");
Теперь вы можете присоединить слушателя и использовать метод getChildrenCount()
для объекта DataSnapshot
, чтобы получить номер вхождения.