在我的代码的这一行中,在ValueEvenListener的OnDataChange()方法中:
int latest = dataSnapshot.getValue(Integer.class);
我收到一个DatabaseException错误,无法将类型java.util.HashMap的值转换为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-Firebase“无法将类型java.util.HashMap的值转换为int”全部内容,希望文章能够帮你解决android-Firebase“无法将类型java.util.HashMap的值转换为int”所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)