我正在尝试一次从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单独获取每个数据点。但是我试图避免这种情况,而是将整个节点合而为一。
val offerDetails = p0.child(querykey).child("Offers").child(offerkey).child(offer)
使用以下代码行时:
val offerDetails = p0.child(querykey).child("Offers").child(offerkey).getValue(Any::class.java)
对象的类型是Any
,no t Offer
,因此可以访问其属性。使用时:
Log.d("MyMessage", offerDetails.toString())
您只是在logcat中打印offerDetails
对象的String表示形式。如果需要访问其属性,则可以将该对象转换为Offer
类型的对象。
Log.d("MyMessage", (offerDetails as Offer).offer)
以这种方式,您告诉编译器该对象的类型为
Offer
,而不是Any
。在这种情况下,logcat中的输出将是:
90