我正在制作一个使用Firebase进行大多数操作的应用 . 有一项活动需要Firebase数据库子项"city"中的对象列表(比如人员) . 每个对象都存储在Firebase唯一键(如 -KbhjqBQHjawWD3Eshw )下 . 但是在子"city"的末尾,有一个String值,它不在任何Unique Key下 . 因此,当我调用Firebase ChildEventListener时,我使用语句(在onChildAdded内) People person = dataSnapsot.getValue(People.class) . 但由于子节点中存在String值,因此应用程序崩溃 . 当我删除它时,该应用程序按预期工作 . 我已经扫描了整个代码,但是我找不到任何把String放在那里的地方 .

有什么方法可以过滤掉我需要的数据,即只有People对象并排除String,以便onChildAdded不会遇到它 .

或者有什么方法可以完成工作吗?

以下是Firebase数据结构示例:

City
 |
 |_ -Kewjsbfehsuhe
 |    |
 |    |_ Name: "Delhi"
 |    |_ StateCode: "DL"
 |    |_ Population: 50000000
 |
 |_ -KSHHWbdsabfur
 |
 |_ -KDQshrgefsvre
 |
 |_ StateCode: "WB"

在这里,我遇到了任意字符串StateCode . People对象由两个字符串名称,StateCode和一个名为Population的int值组成 .