То, что вы пытаетесь сделать, невозможно. Вы не можете упорядочить / отфильтровать вложенный ключ, только по прямым дочерним ключам (-M...
) и по вложенным значениям (active: true
).
Как правило, вы захотите создать новый верхний уровень узел, где вы храните ключи, которые вы ищете, а затем ключи pu sh для каждого соответствующего вложенного узла:
"category_things": {
"jsonmat_jsonmat": {
"-M62....uYgB": true,
"-M62....2-eO": true
}
}
Также см .:
Мой оригинальный, но неправильный ответ приведен ниже ...
Если вы используете startAt
без указания предложения orderBy...
, данные будут упорядочены по приоритету. Этот приоритет перенесен до того, как Firebase поддерживал упорядочение по указанным c свойствам, поэтому в основном это означает, что необходимо вызвать метод orderBy...
перед фильтрацией.
Итак:
DatabaseReference db = FirebaseDatabase.getInstance().getReference().child("Events");
db.orderByKey().startAt("jsonmat").addListenerForSingleValueEvent(new ValueEventListener() {
...