У меня есть Firebase базу данных, которая выглядит следующим образом:Android Firebase GETKEY() возвращение ребенка вместо
appname:
chat:
[ID]:
child1:value
child2:value
Я запрашивая это так:
DatabaseReference ref = rootReference.child("chat").child([ID]);
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
long index = Long.parseLong(dataSnapshot.getKey());
}
}
Проблема заключается в том, этот запрос Безразлично 't работает, потому что dataSnapshot.getKey()
возвращает «child1» вместо ID. Он делает то же самое для dataSnapshot.getRef().getKey()
. Если я использую dataSnapshot.getRef().getParent().getKey()
, я получаю «чат». Как мне вернуть ключ для DataSnapshot
? Сейчас я очень смущен.
Не могли бы вы опубликовать скриншот из консоли базы данных с указанием некоторых данных в этом формате? –
Похоже, я напортачил на этот вопрос. Оказывается, проблема в том, что позже в «ValueEventListener» я добавлял еще одного слушателя и случайно использовал 'this' вместо' MyClass.this'. Извините. – Nick
ум, добавляющий автоответчик, объясняющий вашу ошибку, а затем обозначение его как принятое, чтобы этот вопрос был закрыт? –