我正在開發(fā)一個(gè)連接到 Firebase 實(shí)時(shí)數(shù)據(jù)庫的應(yīng)用程序,我的應(yīng)用程序包含產(chǎn)品,每個(gè)產(chǎn)品都有選項(xiàng):節(jié)點(diǎn)數(shù)據(jù)沒有標(biāo)準(zhǔn)。我怎樣才能動(dòng)態(tài)地為每個(gè)節(jié)點(diǎn)建立一個(gè)模型?
1 回答

拉莫斯之舞
TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊
如果數(shù)據(jù)包含的內(nèi)容沒有標(biāo)準(zhǔn),那么將很難創(chuàng)建任何為該數(shù)據(jù)建模的 Java 類。嗯...嚴(yán)格來說,您可能可以使用反射在運(yùn)行時(shí)生成該類,但這有點(diǎn)超出了大多數(shù)開發(fā)人員希望在單個(gè)應(yīng)用程序中執(zhí)行的操作。
不過,您仍然有兩個(gè)有效的選項(xiàng)來處理這些數(shù)據(jù):
DataSnapshot
只需在代碼中直接使用Firebase 中的即可。getChildren()
所示的方法循環(huán)遍歷未知子節(jié)點(diǎn)。將 the 的值提取
DataSnapshot
到 a 中Map<String, Object>
并在代碼的其余部分中使用它。然后,您可以使用 的常規(guī)訪問器方法訪問特定值Map
。
兩者都有效。DataSnapshot
如果您仍然需要知道其中子節(jié)點(diǎn)的順序,我通常建議使用 a 。如果順序不再重要,那么您也可以安全地轉(zhuǎn)換為 aMap
而不會(huì)失去保真度。
添加回答
舉報(bào)
0/150
提交
取消