我正在嘗試從 Firebase 檢索資料,所以我正在使用 Hashmap,但我想知道為什么要投射 Hashmap,為什么不能直接使用它。請給出深入淺出的語言答案(應該是Kotlin)
這是代碼:
var map = snapshot.getValue() as Hashmap<String,String>
uj5u.com熱心網友回復:
當呼叫DataSnapshot包含多個值的 a 時,getValue()回傳 aMap<String,Object>因為(雖然鍵是定義字串),它無法知道資料庫中的所有值是什么型別。
如果您知道所有值都是字串,則可以將結果轉換為 a Map<String,String>,但它確實需要您轉換從getValue().
uj5u.com熱心網友回復:
DataSnapshot#getValue()方法回傳一個Object型別的物件:
getValue() 將此快照中包含的資料作為本機型別回傳。在可能的回傳型別有:
- 布林值
- 細繩
- 長
- 雙倍的
- 地圖<字串,物件>
- 串列
由于 Firebase 實時資料庫中的每個節點都可以由成對的鍵和值表示,實際上是映射,因此您必須使用該轉換才能實際讀取資料。
或者,您可以使用DataSnapshot#getValue(Class valueType)將每個節點映射到特定類的物件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/395317.html
下一篇:禁用有關大寫函式名稱的警告
