Я получаю нулевое значение, когда пытаюсь получить данные дочернего узла push-идентификатора. Моя структура выглядит так
И это мой код для получения данных сообщения
DatabaseReference mMessageDatabase = FirebaseDatabase.getInstance().getReference().child("private_messages");
mMessageDatabase.child(User1).child(User2).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot != null) {
// getting null in message
String message = dataSnapshot.child("message").getValue(String.class);
Log.e(TAG, "CHAT_LOG: " + message);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Что-то не так в моем коде или я там пропускаю код?
EDIT:
Я пытаюсь использовать запрос, чтобы проверить, дает ли он мне данные. вот мой код
messageDatabase.orderByChild("seen").equalTo("false")
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
for (DataSnapshot datas : dataSnapshot.getChildren()) {
String key = datas.getKey();
String seen = dataSnapshot.child(key).child("seen").getValue(String.class);
Log.e(TAG, "CHAT_LOG: Seen= " + seen);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
К счастью, это дает мне данные. Единственная проблема - получить сообщение. Я использовал запрос здесь, и мне нужно дать ему конкретное значение.