【发布时间】:2017-03-06 12:07:14
【问题描述】:
我有以下代码试图检索 firebase 值。我的数据库结构如下:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mystatement);
listview = (ListView) findViewById(R.id.listview);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, list);
listview.setAdapter(adapter);
dref = FirebaseDatabase.getInstance().getReference();
dref = dref.child("Dog Expenditure");
dref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot child : dataSnapshot.getChildren()) {
HashMap<String, Object> value = (HashMap<String, Object>) child.getValue();
String amount = value.get("amount").toString();
String item = value.get("item").toString();
// This will print out amount and item
System.out.println(amount + item);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
我尝试了不同的方法来做到这一点,但我在这里没有运气。我得到的只是这个错误 java.lang.ClassCastException:java.lang.String 不能转换为 java.util。哈希映射 在 com.example.moses.farm.Mystatement$1.onDataChange(Mystatement.java:39) 指向这 HashMap value = (HashMap) child.getValue(); 行代码.我在这里被困了将近一个星期,任何知道如何获得它的人都会真正帮助我
【问题讨论】:
-
可能是您的孩子返回
String请检查... -
不确定这是否会解决它,但您绝对不应该强制转换为 HashMap。而是投:
Map<String, Object> value = (Map<String, Object>) child.getValue()
标签: android firebase firebase-realtime-database