我的数据库:为什么我在Firebase-RealDatabase上获取ArrayList而不是HashMap?
{
"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“是一个String键。我们不关注,问题在别处 – Skemelio
我只是问为什么你认为它应该是一张地图......你的firebase数据库线性列出了元素,对吧?通过索引定位。 –