[英]Firebase fetching data as Kotlin data type Any
我試圖從 Firebase 實時數據庫中一次性獲取整個節點,類型為Any
。 我使用的代碼如下:
val offerDetails = p0.child(querykey).child("Offers").child(offerkey).getValue(Any::class.java)
Log.d("MyMessage",
offerDetails.toString())
當 Log 返回時,數據完美地獲得:
{offer=90, ****ID=********, deliveryHour=0, mobile=******, type=2, deliveryMinute=15, offerComment=******}
但是,我無法在此處獲取單個數據,例如報價、類型等。 有人可以幫我嗎?
PS 我可以從 Firebase 單獨獲取每個數據點。 但我試圖避免這種情況,而是一次性獲得整個節點。
當您使用以下代碼行時:
val offerDetails = p0.child(querykey).child("Offers").child(offerkey).getValue(Any::class.java)
對象的類型是Any
而不是t Offer
,因此您可以訪問其屬性。 當您使用:
Log.d("MyMessage", offerDetails.toString())
您只是在 logcat 中打印您的offerDetails
對象的 String 表示形式。 如果您需要訪問它的屬性,那么您應該將該對象強制轉換為Offer
類型的對象。
Log.d("MyMessage", (offerDetails as Offer).offer)
通過這種方式,您告訴編譯器該對象的類型為Offer
而不是Any
。 在這種情況下,logcat 中的輸出將是:
90
編輯:
您還可以使用以下代碼行訪問屬性:
val offer = p0.child(querykey).child("Offers").child(offerkey).child("offer").getValue(String::class.java)
Log.d("MyMessage", offer)
logcat 中的相同輸出 ( 90
)。
您的對象很可能作為Map<String, Object>
對象返回。 也許使用地圖,因為您可以比 Any 對象更好地讀/寫它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.