无法将java.lang.String类型的对象转换为com.thesis.joinerapp.Model.Joins类型

时间:2019-10-21 02:04:51

标签: android firebase firebase-realtime-database

所以我想根据我从其他活动获得的值查询我的Firebase数据库。

private String tripID = "";
tripID = getActivity().getIntent().getStringExtra("tripID");
JoinRef = FirebaseDatabase.getInstance().getReference().child("Join").child(tripID);
FirebaseRecyclerOptions<Joins> options = new FirebaseRecyclerOptions.Builder<Joins>().setQuery(JoinRef,Joins.class).build();

数据库结构: Database Structure

但是它显示了一个异常

  

com.google.firebase.database.DatabaseException:无法转换对象   类型为java.lang.String的类型为com.thesis.joinerapp.Model.Joins

2 个答案:

答案 0 :(得分:1)

虽然FirebaseUI可以为您执行数据查找,但是您的数据必须采用非常特定的格式。

如果要显示旅行次数的子集,则索引必须如下所示:

"myTrips": {
    "tripID1": true,
    "tripID2": true
}

tripID1tripID2是您在-L下的/Trip键。

您可以在showing indexed data的FirebaseUI文档中找到此数据的另一个示例。

答案 1 :(得分:0)

当您要使用FirebaseUi时,您的数据库结构应如下所示。

{
    "Join" : {
        "tripID" : {
            "pushUid" : {
                "joinID" : "yourJoinID",
                "personCount" : "1",
                "tripID" : "yourTrioID",
                "uid" : "yourUid"
            }

        }
    }
}

您需要添加新的根子级,即pushId