我正在處理一個大型Firebase數據庫,每個節點至少有6層層次結構以及許多子節點。我想解析整個快照並將其轉換爲對象模型。我發現this解決方案,但在我看來,它是非常低效的解析每個節點的孩子requries調用firebase,這會以指數方式增加延遲。有沒有什麼方法可以在本地完成「ref.observeSingleEvent」,而不是打電話給Firebase?任何其他更好的替代品將不勝感激。Swift Firebase快照到對象模型
0
A
回答
1
//this goes into your call (observeSingleEvent)
let enumerator = snapshot.children //assuming you use snapshot as name
while let rest = enumerator.nextObject() as? FIRDataSnapshot {
// this loops through every child in that map
let values = (rest as! DataSnapshot).value as? NSDictionary
let coins= values?["coins"] as? Int ?? 0
//above code looks for a key with username and grabs the value from that. If it is not a string value it returns the default value.
//use above code for picture 1
if (rest as! DataSnapshot).key == "slot"{
let enumeratorMap1 = (rest as! DataSnapshot).children
while let rest2 = enumeratorMap1.nextObject() as? FIRDataSnapshot {
let valuesMap1 = (rest2 as! DataSnapshot).value as? NSDictionary
//loop through values in new map
//use this methodes for looping through maps, as stated in picture 2
//keep repeating this method for any child under the map
}
}
}
+0
這導致了很多臃腫的代碼,但工作方式比其他解決方案更好。 – tectonicpie
+0
@tectonicpie是的我知道,但我認爲沒有其他辦法(如果有的話,我想知道),但它主要取決於你如何構造你的數據。 –
+0
如何使此解決方案與對象數組一起工作?例如 「name」:[{object1},{object2},{object3}] 我可以將名稱及其數組轉換爲NSDictionary,但一旦進入數組內部,就沒有鍵值對,只是對象的值。 – tectonicpie
相關問題
- 1. Swift Firebase訪問子快照數據
- 2. swift - Firebase數據庫快照檢索。
- 3. 如何包含firebase快照鍵值? [Swift]
- 4. 通讀Firebase快照 - Android
- 5. 從同一個巨型Firebase DB對象中檢索幾個隨機快照
- 6. 調試對象快照
- 7. Firebase:如何從快照對象中提取值?
- 8. Firebase加載快照問題
- 9. 代碼跳過firebase快照
- 10. 如何在Firebase快照中使用控制流中的Nil? (SWIFT)
- 11. Firebase在Swift 3中訪問快照值錯誤
- 12. Swift Firebase訪問兒童快照中的數據(由childAdded提供)
- 13. 檢查Swift中的Firebase快照是否等於零
- 14. Firebase中的快照。如何深入挖掘快照
- 15. 單元測試 - 如何快照對象?
- 16. 內存中對象的快照
- 17. 從Firebase快照值獲取ZoneAwarePromise
- 18. UITableView不加載Firebase快照數據。
- 19. ObserveSingleEventOfType(ChildAdded)僅返回一個快照Firebase
- 20. 從Firebase快照獲取項目數組
- 21. 快照之外的變量firebase Angular
- 22. Firebase檢索快照值爲空
- 23. 將swift中的對象層次結構映射到firebase
- 24. 重複的對象被添加到數組swift firebase
- 25. 將Firebase數據庫子項映射到swift 3對象
- 26. 無法將快照保存到數據模型?
- 27. 如何檢查用戶名對FireBase數據快照的褻瀆
- 28. 未找到Firebase對象
- 29. swift:從照片庫中拍攝圖片並上傳到firebase
- 30. swift firebase迭代每個快照值來更新/設置一個值
是的,你可以下載一個地圖在火力地堡與下它的許多childerns,你不必做超過1個呼叫火力地堡如果所有childern都落在1張地圖下,並且您下載了該地圖。 –