【问题标题】:Getting specific child from Firebase for Android从 Firebase for Android 获取特定的孩子
【发布时间】:2021-07-15 11:46:01
【问题描述】:

假设我在实时数据库中有这个 JSON 文件:

我尝试将湿度和温度值都打印到我的EditText 中,我正在使用此代码:

database = FirebaseDatabase.getInstance("https://xxx-xxxxxxx-xxxx-xxxx.xxxxxx-xxxxxx.firebasedatabase.app/")
reference = database.getReference("data")

reference.addListenerForSingleValueEvent( object : ValueEventListener {
            override fun onDataChange (dataSnapshot: DataSnapshot) {
                if (dataSnapshot.exists()) {
                    for (data in dataSnapshot.children) {
                        temp.setText(data.child("temp").value.toString())
                        hum.setText(data.child("hum").value.toString())
                    }
                }
            }
            override fun onCancelled(error: DatabaseError) {
                TODO("Not yet implemented")
            }
        })
    }

作为 Temp 和 Hum EditText 内的结果,它得到了 null 值。所以我试着打印一些东西来看看我做得对吗,我做了print(data.value.toString()) 并且只返回temp 值而缺少hum 值。

【问题讨论】:

  • 尝试将引用设置为reference = database.getReference("data").child(temp)
  • @Dharmaraj 和hum 值怎么样?我需要一一指定吗?
  • 您能说明您要读取哪个节点吗?我以为你只想读取 temp 的值而不是 hum
  • 你可以再次检查我的问题,我想打印这两个东西。 @Dharmaraj

标签: android firebase kotlin firebase-realtime-database


【解决方案1】:

为了能够获取hum 属性和temp 属性的值,不需要任何循环。所以只需使用以下代码行:

database = FirebaseDatabase.getInstance("https://xxx-xxxxxxx-xxxx-xxxx.xxxxxx-xxxxxx.firebasedatabase.app/")
reference = database.getReference("data")

reference.addListenerForSingleValueEvent( object : ValueEventListener {
    override fun onDataChange (dataSnapshot: DataSnapshot) {
        if (dataSnapshot.exists()) {
            temp.setText(dataSnapshot.child("temp").getValue(String::class.java))
            hum.setText(dataSnapshot.child("hum").getValue(String::class.java))
        }

        override fun onCancelled(error: DatabaseError) {
            Log.d("TAG", task.getException().getMessage()); //Don't ignore potential errors!
        }
    }
})

此代码会将66.00 的值设置为temp EditText,并将28.00 的值设置为hum EditText。

【讨论】:

    猜你喜欢
    • 2023-02-25
    • 2016-04-28
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    相关资源
    最近更新 更多