Я пытаюсь прочитать некоторые значения из базы данных Firebase Real time. Моя структура выглядит так:
И мой код для получения значения ("Wine and Dine"):
databaseReference.child("test").child("event_name").child("drinks")
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Object dataSnapshotObject = dataSnapshot.getValue(String.class);
if(dataSnapshotObject != null){
Toast.makeText(content, "Event Name: " + dataSnapshotObject.toString(), Toast.LENGTH_LONG).show();
}else
Toast.makeText(context,"null",Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(DatabaseError databaseError) {
});
Однако я получаю только нулевой ответ в качестве значения. Что я делаю не так?
2 ответа
Вы можете удалить .child("drinks")
из цепочки (и вставить его позже, как в коде ниже), и если вы все равно хотите преобразовать dataSnapshotObject
в String
, вы должны получить его в String
.
Что-то вроде этого:
String value = dataSnapshot.child("drinks").getValue(String.class);
Также проверьте, выглядит ли ваш databaseReference
примерно так или нет.
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
Вы можете использовать addListenerForSingleValueEvent
, чтобы получить значение
Пример кода:
FirebaseDatabase.getInstance().getReference().child("test").child("event_name").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
HashMap hashUser = (HashMap) dataSnapshot.getValue();
if (hashUser != null) {
String Drinks = hashUser.get("drinks").toString();
//Toast.makeText(this, Drinks , Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Похожие вопросы
Новые вопросы
android
Android - это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфоны, планшеты, автомобили, телевизоры, одежда, стекло, IoT). Для тем, связанных с Android, используйте специальные теги Android, такие как android-intent, android-activity, android-адаптер и т. Д. Для вопросов, не связанных с разработкой или программированием, но связанных с платформой Android, используйте эту ссылку: https: // android.stackexchange.com .