簡體   English   中英

SwiftUI FireStore - 從文檔中獲取字段並顯示為文本()

[英]SwiftUI FireStore - Get Field from Document and display as Text()

我對 SwiftUI 很陌生,所以對我來說很簡單 - 這是一個項目。

我已將用戶的詳細信息存儲到我的 Firestore 數據庫中,如下所示:

數據庫圖像

我想從數據庫中獲取名稱並將其顯示在 Text("Hello" [name]) 我已經能夠從數據庫中獲取名稱並將 append 提取到數組中。 單擊“登錄”按鈕時,將運行此 function。

代碼如下:

func getData(){
let docRef = db.collection(FStore.collectionName).document(userID)

docRef.getDocument { (document, error) in
    if let document = document, document.exists {
        if let fetchedName = document.get("name") as? String {
            userArray.append(fetchedName)
            print(userArray)
        }
    }
}

}

打印 userArray 時,會打印正確的名稱。 但是,我正在努力在控制台之外和我的 Text UI 字段上顯示名稱。 當我嘗試下面的代碼時,它給了我一個索引超出范圍的錯誤。

Text("Hello: \(userArray[0])")

任何幫助表示贊賞/從特定文檔中檢索字段數據的任何其他方法。

感謝@Steve M ,它最終成為一種愚蠢的錯誤。

他是對的,顯示器甚至在陣列被填充之前就試圖讀取陣列。

如我的評論中所述,我調用 getData() function 然后運行代碼以顯示下一個屏幕。 我將“顯示下一個屏幕代碼”包裝在 DispatchQueue 中以延遲顯示下一個屏幕

DispatchQueue.main.asyncAfter(deadline@ .now() + 1){
nextView = true
}

在顯示下一個屏幕並成功顯示數據庫中的名稱之前,這會延遲 1 秒。

暫無
暫無

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

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