Firebase以Kotlin数据类型Any提取数据

问题描述 投票:0回答:2

我正在尝试一次从Firebase实时数据库中以Any类型获取整个节点。我使用的代码如下:

val offerDetails = p0.child(querykey).child("Offers").child(offerkey).getValue(Any::class.java)
Log.d("MyMessage", 
offerDetails.toString())

当日志返回时,将完美地获得数据:

{offer=90, ****ID=********, deliveryHour=0, mobile=******, type=2, deliveryMinute=15, offerComment=******}

但是,我无法在此获取报价,类型等单个数据。有人可以帮我吗?

P.S。我可以从Firebase单独获取每个数据点。但是我试图避免这种情况,而是将整个节点合而为一。

android firebase kotlin any
2个回答
0
投票
val offerDetails = p0.child(querykey).child("Offers").child(offerkey).child(offer)

0
投票

使用以下代码行时:

val offerDetails = p0.child(querykey).child("Offers").child(offerkey).getValue(Any::class.java)

对象的类型是Anyno t Offer,因此可以访问其属性。使用时:

Log.d("MyMessage", offerDetails.toString())

您只是在logcat中打印offerDetails对象的String表示形式。如果需要访问其属性,则可以将该对象转换为Offer类型的对象。

Log.d("MyMessage", (offerDetails as Offer).offer)

以这种方式,您告诉编译器该对象的类型为Offer,而不是Any。在这种情况下,logcat中的输出将是:

90
© www.soinside.com 2019 - 2024. All rights reserved.