gpt4 book ai didi

android - 无法从 Android 中的 dataSnapShot 获取数据

转载 作者:搜寻专家 更新时间:2023-11-01 08:18:11 25 4
gpt4 key购买 nike

我已经检查了如何从 dataSnapShot 获取数据的这些问题和其他问题,所以请先阅读问题。

下面是我执行所有这些操作的 Firebase 数据库结构。

enter image description here

我已经实现了以下代码来从 Firebase 获取/读取数据。 问题是无法通过使用该键或直接传递该键来获取值。当我得到 key 时,它可能会被打印出来,但它没有值(value)。

mDatabase!!.reference.child(FirebaseKey.NodeEmpCheckInOut) //-->EmpCheckInOut
.child(AppConstant.yyyy_MM.format(Date())) //-->2019-04
.child(userSession!!.getUserId()) //-->N8OE2CGu8nav0k0n7Rh61tKjvRF3
.addValueEventListener(object : ValueEventListener {
override fun onCancelled(dataSnapshotError: DatabaseError) {
Log.e(TAG, "Error:Exception->" + dataSnapshotError.message)
}

override fun onDataChange(dataSnapShot: DataSnapshot) {
Log.i(TAG, "complete Data SnapShot::->$dataSnapShot")

for (dsnpNode: DataSnapshot in dataSnapShot.children) {
val key: String = dsnpNode.key.toString()
val value: Any? = dsnpNode.child(key).child("checkIn").getValue().toString()

//I have tried these ways also to retry data
//val value: String = dsnpNode.child(key).child("checkIn").value.toString()
//val value: String = dsnpNode.child("2019-04-11").child("checkIn").value.toString()

Logg.i(TAG, "key->$key")
Logg.i(TAG, "value::-> $value")

/*Log value is printed in log window
key->2019-04-11
value::-> null*/
}
}

})

当我打印 dataSnapShot.toString() 然后它打印如下 日志窗口。

{ key = N8OE2CGu8nav0k0n7Rh61tKjvRF3, value = {2019-04-17={todayDate=2019-04-17, checkIn=05:41 AM, isCheckIn=2, checkOut=05:44 PM}, 2019-04-23={todayDate=2019-04-23, checkIn=03:29 PM, isCheckIn=1, checkOut=00}, 2019-04-12={todayDate=2019-04-12, checkIn=09:35 AM, isCheckIn=2, checkOut=10:00 PM}, 2019-04-16={todayDate=2019-04-16, checkIn=05:39 AM, isCheckIn=2, checkOut=05:39 PM}, 2019-04-18={todayDate=2019-04-18, checkIn=05:55 PM, isCheckIn=2, checkOut=08:13 PM}, 2019-04-13={todayDate=2019-04-13, checkIn=09:36 AM, isCheckIn=2, checkOut=5:00 PM}, 2019-04-19={todayDate=2019-04-19, checkIn=10:48 AM, isCheckIn=1, checkOut=00}, 2019-04-11={todayDate=2019-04-11, checkIn=05:35 AM, isCheckIn=2, checkOut=08:00 PM}, 2019-04-22={todayDate=2019-04-22, checkIn=12:10 PM, isCheckIn=1, checkOut=00}} }

我哪里错了?

最佳答案

要解决这个问题,请更改以下代码行:

val key: String = dsnpNode.key.toString()

val key: String = dsnpNode.key

调用 toString() 对您一点帮助都没有,因为键总是字符串。

同时更改以下代码行:

val value: Any? = dsnpNode.child(key).child("checkIn").getValue().toString()

val value: Any? = dsnpNode.child("checkIn").getValue(String::class.java)

看,我已经删除了对 .child(key) 的调用,因为不需要那个。

关于android - 无法从 Android 中的 dataSnapShot 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55809812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com