0
當我第一次問這個問題時,我沒有真正完成我的研究。但是在這20多個小時後,我的結構與Firebase文檔完全相同。但是,我無法訪問閉包之外的任何數據。這裏就是數據應該被寫入到結構:在關閉之外訪問數據Firebase ObserveSingleEvent // SWIFT
struct UserStruct {
let name : String!
let age : String!
}
而當它被調用,一切都寫在完美的數據庫,它不打印零封裏面,它打印的實際值明顯。我已經嘗試過
DispatchQueue.main.async {
}
但是那也行不通,有人指導我!任何幫助表示讚賞,這是我與Firebase的最後一個問題。
let currentUser = FIRDatabase.database().reference(withPath: "users").child((FIRAuth.auth()!.currentUser?.uid)!)
currentUser.observeSingleEvent(of: .value, with: { snapshot in
let value = snapshot.value as? NSDictionary
let name = value?["name"] as? String
let age = value?["age"] as? String
self.userAdded.insert(UserStruct(name: name, age: age), at: 0) // 1
let user = UserStruct.init(name: name, age: age) // 2
print("1 \(user.name)")
print("2 \(self.userAdded[0].name!)")
})
我寫了獲取數據的方式有兩種,數字二(2)是火力地堡暗示的方式,但我甚至不能得到用戶保持外接近像我可以與結構。
目前還不清楚你在問什麼。 firebase數據在閉包內有效,所以例如你想填充一個tableView。你觀察你想要的節點,然後數據在閉包內返回。你迭代快照並填充一個數組(在閉包之外定義),一旦完成,tableView.reload(仍在閉包內)。從那時起,你的數據被存儲在數組中,並可以使用。您根本不需要執行DispatchQueue.main.async。 – Jay