第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用“gdx-fireapp”從 Firebase 下載列表返回帶有空字段的對(duì)象列表

使用“gdx-fireapp”從 Firebase 下載列表返回帶有空字段的對(duì)象列表

慕工程0101907 2021-08-25 17:17:19
我正在嘗試使用gdx-fireapp庫在LibGdx應(yīng)用程序中處理 Firebase 。我遵循了這里給出的例子。我有“下載列表”示例的問題:我創(chuàng)建了 POJO“用戶”類并成功地在數(shù)據(jù)庫中寫入了一個(gè)用戶......所以數(shù)據(jù)庫包含一個(gè)包含 1 個(gè)用戶的列表,其中填寫了所有字段(在數(shù)據(jù)庫控制臺(tái)中驗(yàn)證)。現(xiàn)在,當(dāng)我嘗試下載具有確切給定代碼的用戶列表時(shí),我得到一個(gè)包含 1 個(gè)用戶的列表(OK),所有字段均為 NULL這是“用戶”POJO 類public class UserPOJO{  public String username;  public String email;  public UserPOJO(){}  public UserPOJO(String username, String email){    this.username = username;    this.email = email;  }}這是檢索用戶列表的代碼:public static void readUsersJava (){    GdxFIRDatabase.instance().inReference("users")            .filter(FilterType.LIMIT_FIRST, 5)            .readValue(List.class, new DataCallback<List<UserPOJO>>(){                @MapConversion(UserPOJO.class)                @Override                public void onData(List<UserPOJO> list) {                    Gdx.app.log("Firebase Java", "read users OK");                }                @Override                public void onError(Exception e) {                    Gdx.app.log("Firebase Java", "read users KO");                }            });}因?yàn)槲抑烙脩舻?ID,所以我可以嘗試從數(shù)據(jù)庫中讀取    GdxFIRDatabase.instance().inReference("users/Xc4x0IOm...")            .readValue(UserPOJO.class, new DataCallback<UserPOJO>() {...}但是這樣做,我得到“java.lang.ClassCastException:java.util.HashMap 無法轉(zhuǎn)換為 UserPOJO”。這可能是字段為空的原因:無法投射...但我找不到如何擺脫這個(gè)錯(cuò)誤有人可以幫我嗎?
查看完整描述

2 回答

?
慕桂英546537

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊

好的,我發(fā)現(xiàn)了這個(gè):查詢答案是 Hashmap<String, Hashmap<String, String>>


所以我不得不:


添加一個(gè)“order by”子句 -> 使用第一級(jí)哈希圖(我不知道為什么)

,這似乎是列表查詢所必需的

創(chuàng)建我的“用戶”類的自定義映射

所以代碼看起來像這樣:(“用戶”類沒有變化)


public static void readUsersJava (){

setUsersMapConverter()

GdxFIRDatabase.instance().inReference("users")

        .orderBy(OrderByMode.ORDER_BY_KEY, null)

        .filter(FilterType.LIMIT_FIRST, 5)

        .readValue(List.class, new DataCallback<List<UserPOJO>>(){

        ...

        });

}


fun setUsersMapConverter(){

    GdxFIRDatabase.instance().setMapConverter(object : FirebaseMapConverter {

        override fun <T : Any?> convert(map: MutableMap<String, Any>, wantedType: Class<T>): T {

            val element = (map.get(map.keys.first())) as HashMap<String, String>

            return UserPOJO(element.get("displayName"), element.get("email")) as T

        }

        // Should be inversion of convert (needed only by GWT platform)

        override fun unConvert(`object`: Any): Map<String, Any>? {

            return null

        }

    })

}

希望能有所幫助。


如果您找到更好的解決方案,請(qǐng)告訴我。


查看完整回答
反對(duì) 回復(fù) 2021-08-25
  • 2 回答
  • 0 關(guān)注
  • 191 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)