android - 火力地堡 "Failed to convert a value of type java.util.HashMap to int"

标签 android firebase firebase-realtime-database

ValueEvenListenerOnDataChange() 方法中的这一行代码:

int latest = dataSnapshot.getValue(Integer.class);

我收到一个 DatabaseException 错误 Failed to convert a value of type java.util.HashMap to int

但是,在我的数据库中,您可以查看下图:

enter image description here

显然不是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/

相关文章:

android - 您如何在 AndroidManifest.xml 中指定您要禁止在小于 4.7 英寸的设备上安装?

android - Sqlite 数据库 onCreate 参数

java - 访问 Firebase 中的项目数组

java - 我什么时候应该删除 OnCompleteListener?

node.js - 我可以使用 Firebase Admin SDK for Node 重置用户密码吗?

android - 如何从 Android Studio 的 UI 在 build.gradle 文件中添加新的依赖项

javascript - 如何使用实时数据库在 firebase 中处理多个选项卡

javascript - 将当前日期和时间保存在 firebaseDatabase 中

java - Firebase 获取值并更改/更新它

android - kotlin 中的 SectionedRecyclerViewAdapter