在 ValueEvenListener
的 OnDataChange()
方法中的这一行代码:
int latest = dataSnapshot.getValue(Integer.class);
我收到一个 DatabaseException
错误 Failed to convert a value of type java.util.HashMap to int
。
但是,在我的数据库中,您可以查看下图:
显然不是HashMap
而是int
。这是一个错误还是我做错了什么?我能做些什么来修复它?为什么在值为 int
时检索 Hashmap
?
完整数据快照:
final DatabaseReference database = FirebaseDatabase.getInstance().getReference();
database.child("Campaigns").child(key).child("count");
database.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int latest = dataSnapshot.getValue(Integer.class);
button.setText(latest + "");
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(context, context.getString(R.string.error) + ": " + databaseError.getMessage(), Toast.LENGTH_SHORT).show();
}
});
数据库:
Campaigns:{
-JDKKDJIIDJFIDJKDK:{
count:2432
}
}
最佳答案
事实证明,我不得不再次将 dataSnapshot 子数据发送到我的目的地。例如:
int latest = dataSnapshot.child("Campaigns").child(key).child("count").getValue(Integer.class);
默认情况下 dataSnapshot
实际上是我的整个数据库。
关于android - 火力地堡 "Failed to convert a value of type java.util.HashMap to int",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38845516/