簡體   English   中英

如何從 Firestore 集合 Android Java 中的數組獲取數據

[英]How To Get Data From Array in Firestore Collection Android Java

我想從 Firestore 集合中的 map 數組中獲取數據。 我附上一張圖片以更好地理解我的問題,我想以紅色獲取數據,而黃色是數組藍色是 Map。 嘗試了很多東西,但沒有工作。 任何幫助將不勝感激。 提前致謝。

Firestore 集合的圖像

是的,以黃色突出顯示的字段是一個數組。 如果您想讀取數組中的第一個元素,基本上是存在於索引 0 處的 object,那么您應該創建一個指向該特定文檔的引用,進行 get() 調用並附加一個偵聽器來讀取數據。 如果您需要將 map 數組中的元素轉換為 object 的特定 class,那么您應該創建兩個如下所示的類:

class Game {
    public int added, id;
    public String name, slug;

    public Game() {}

    public Game(int added, int id, String name, String slug) {
        this.added = added;
        this.id = id;
        this.name = name;
        this.slug = slug;
    }
}

和:

class Document {
    public List<Game> games;
}

並執行 Firestore 調用:

db.collection("Home_New2").document("7ZEshkdgUIInTXo9H9Cv").get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
    @Override
    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
        if (task.isSuccessful()) {
            Document document = task.getResult().toObject(Document.class);
            if (document != null) {
                Game firstGame = document.games.get(0);
                Log.d(TAG, firstGame.added + " / " + firstGame.id + " / " + firstGame.name + " / " + firstGame.slug);
            }
        } else {
            Log.d("TAG", "Failer with: ", task.getException());
        }
    }
});

logcat 中的結果將是:

7676 / 3387 / Bloodborne / bloodborne

有關更多詳細信息,我建議您查看以下資源:

如何將 Cloud Firestore 中的對象數組 map 到對象列表?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM