Моя база данных:Почему я получаю ArrayList вместо HashMap в Firebase-RealDatabase?
{
"Shops": {
"Title": {
"1": "Footlocker",
"2": "Nike Store",
"3": "Adidas Store"
},
"Lat": {
"1": "123",
"2": "123",
"3": "123"
},
"Lon": {
"1": "123",
"2": "123",
"3": "123"
}
}
}
Цифры "1", "2" и "3" представляет собой магазин. Например, в магазине «1» есть «Footlocker» для названия и «123» широты (вероятно, это должно быть число, но это не моя проблема).
Моя цель состоит в том, чтобы получить все титулы в Hashmap<String,String>
(ключ будет «1» ... значение «сундучок» и т.д ...)
Так я создаю ссылку на ключ «Название» в базе данных и добавить слушателя,
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Shops").child("Title");
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
HashMap<String,String> map = (HashMap<String,String>) dataSnapshot.getValue();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Как вы можете себе представить, приведенный выше код генерирует исключение, так как ArrayList не может быть приведен к HashMap.
Мой вопрос: Не должен ли я получать HashMap вместо цифр в качестве ключей и названий в качестве значений?
Ваших ключи больше похожи на индексы в списке, чем ключи для карты –
@ cricket_007 Я знаю, что это не правильное значение ключа, но даже " 1 "является строковым ключом. Не будем здесь сосредоточиться, проблема в другом месте – Skemelio
Я просто спрашиваю, почему вы думаете, что это должна быть карта ... Ваша база данных базы данных содержит элементы линейно, верно? По позиционированию индекса. –