Ab_*_*Ab_ 2 android firebase firebase-realtime-database
在我的OnDataChange()方法中的这行代码中ValueEvenListener:
int latest = dataSnapshot.getValue(Integer.class);
Run Code Online (Sandbox Code Playgroud)
我得到了一个DatabaseException错误Failed to convert a value of type java.util.HashMap to int.
但是,在我的数据库中,您可以查看下面的图像:
这显然不是一个HashMap而是一个int.这是一个错误还是我做错了什么?我该怎么办才能修复它?为什么Hashmap在值为何时检索int?
完整数据快照:
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();
}
});
Run Code Online (Sandbox Code Playgroud)
数据库:
Campaigns:{
-JDKKDJIIDJFIDJKDK:{
count:2432
}
}
Run Code Online (Sandbox Code Playgroud)
事实证明我必须再次将子dataSnapshot发送到我的目的地.例如:
int latest = dataSnapshot.child("Campaigns").child(key).child("count").getValue(Integer.class);
Run Code Online (Sandbox Code Playgroud)
默认情况下dataSnapshot是我的整个数据库.
| 归档时间: |
|
| 查看次数: |
10116 次 |
| 最近记录: |