android-Firebase“无法将类型java.util.HashMap的值转换为int”

android-Firebase“无法将类型java.util.HashMap的值转换为int”,第1张

概述在我的代码的这一行中,在ValueEvenListener的OnDataChange()方法中:intlatest=dataSnapshot.getValue(Integer.class);我收到一个DatabaseException错误,无法将类型java.util.HashMap的值转换为int.但是,在我的数据库中,您可以查看下图:它显然不是HashMap,而是int.这是一个

在我的代码的这一行中,在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”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1094744.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存