安卓 火库 实时数据库 获取节点子级时出现错误

我有一个非常奇怪的问题。此代码几天前仍在工作,但现在它正在使我的应用程序崩溃。我正在尝试循环访问节点子节点。


private void getInfo()

{

    FirebaseDatabase.getInstance().getReference()

            .child("ForumResponses").child(forumID).addListenerForSingleValueEvent(new ValueEventListener()

    {

        @Override

        public void onDataChange(@NonNull DataSnapshot dataSnapshot)

        {

            for(DataSnapshot snap : dataSnapshot.getChildren())

            {

                ForumResponses forumResponses = snap.getValue(ForumResponses.class);

            }

        }


        @Override

        public void onCancelled(@NonNull DatabaseError databaseError)

        {


        }

    });

}

如果我删除下面的代码行,应用程序不会崩溃。这是为什么呢?


ForumResponses forumResponses = snap.getValue(ForumResponses.class);

下面是错误日志


    com.google.firebase.database.DatabaseException: Failed to convert a value of type java.util.HashMap to int

    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertInteger(com.google.firebase:firebase-database@@16.1.0:351)

    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.deserializeToPrimitive(com.google.firebase:firebase-database@@16.1.0:272)

    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.deserializeToClass(com.google.firebase:firebase-database@@16.1.0:197)

    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.deserializeToType(com.google.firebase:firebase-database@@16.1.0:178)

    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.access$100(com.google.firebase:firebase-database@@16.1.0:47)



慕少森
浏览 77回答 1
1回答

ITMISS

您会收到以下错误:数据库异常: 无法将 java.util.HashMap 类型的值转换为整数因为类中的字段类型是 和 数据库中的字段,因为该字段实际上是一个对象。要解决此问题,请将数据库中的字段转换为 ,或将类中字段的类型更改为 .likedForumResponsesintintForumResponsesMap<String, Object>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java