Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android/kotlin中从firebase读取子代数据_Android_Firebase_Kotlin_Firebase Realtime Database - Fatal编程技术网

如何在android/kotlin中从firebase读取子代数据

如何在android/kotlin中从firebase读取子代数据,android,firebase,kotlin,firebase-realtime-database,Android,Firebase,Kotlin,Firebase Realtime Database,我正在尝试将数据从firebase实时数据库读取到文本视图。但每次在TextView中显示null时。我想读取单用户数据。我想在用户输入时读取数据 我的数据结构如下所示 { "Date": { "04-10-2019": { "-LqR-e2UJLJCccqfgGi1":{ address: Dhaka date: 04-10-2019

我正在尝试将数据从firebase实时数据库读取到文本视图。但每次在TextView中显示null时。我想读取单用户数据。我想在用户输入时读取数据

我的数据结构如下所示

{
  "Date": {
           "04-10-2019": {
                "-LqR-e2UJLJCccqfgGi1":{
                    address: Dhaka
                     date: 04-10-2019
                     name: Mark
                     phoneNo: 017#######   
                     serialNo: -LqR-e2UJLJCccqfgGi1       
                     type: New
                   },
          },

          "05-10-2019": {
                "-LqU-e2UJLJCDcqfgGi9":{
                    address: Dhaka
                     date: 04-10-2019
                     name: Tony
                     phoneNo: 017#######   
                     serialNo: -LqU-e2UJLJCDcqfgGi9      
                     type: OLd
          },

  }
}
我正在尝试的代码

class Info(
           val serialNo: String? = "",
           val name: String = "",
           val address: String = "",
           val phoneNo: String = "",
           val date: String = "",
           var type: String = ""

          )

private fun saveInfo() {
        // Edit Text Field
        val name = editTextName.text.toString().trim()
        if (name.isEmpty()) {
            editTextName.error = "Please Enter Your Name"
            return
        }

        val address = editTextAddress.text.toString().trim()
        if (address.isEmpty()) {
            editTextAddress.error = "Please Enter Your Address"
            return
        }

        val phoneNo = editTextPhoneNo.text.toString().trim()
        if (phoneNo.isEmpty()) {
            editTextPhoneNo.error = "Please Enter Your Phone Number"
            return
        }

        val date = dateText.text.toString().trim()

        //Radio Button
        var type = ""
        when {
            checkboxNew.isChecked -> type += "New"
            checkboxOld.isChecked -> type += "Old"
            radioGroup.checkedRadioButtonId <= 0 -> {
                Toast.makeText(applicationContext, "Please Check New or Old", Toast.LENGTH_LONG)
                    .show()
                return
            }
        }

        val current = LocalDateTime.now()
        val formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy")
        val formatted = current.format(formatter)

        val myRef = FirebaseDatabase.getInstance().getReference("Date").child(formatted)
        myRef.orderByChild(formatted).startAt("28-09-2019").endAt("31-12-2070")

        val patientId = myRef.push().key
        val patient = Info(patientId, name, address, phoneNo, date, type)

        myRef.child((patientId).toString()).setValue(patient).addOnCompleteListener {
            Toast.makeText(applicationContext, "Info saved Successfully", Toast.LENGTH_LONG).show()

            myRef.addListenerForSingleValueEvent(object : ValueEventListener {
                override fun onDataChange(dataSnapshot: DataSnapshot) {
                    for (data in dataSnapshot.children) {
                        val user = data.child(formatted).value.toString()
                        dataText.text = user
                    }
                }

                override fun onCancelled(error: DatabaseError) {

                }
            })

        }
    }
类信息(
val序列号:字符串?=“”,
val name:String=“”,
val地址:String=“”,
val phoneNo:String=“”,
val日期:String=“”,
变量类型:String=“”
)
私人娱乐存储信息(){
//编辑文本字段
val name=editTextName.text.toString().trim()
if(name.isEmpty()){
editTextName.error=“请输入您的姓名”
返回
}
val address=editTextAddress.text.toString().trim()
if(address.isEmpty()){
editTextAddress.error=“请输入您的地址”
返回
}
val phoneNo=editTextPhoneNo.text.toString().trim()
if(phoneNo.isEmpty()){
editTextPhoneNo.error=“请输入您的电话号码”
返回
}
val date=dateText.text.toString().trim()
//单选按钮
var type=“”
什么时候{
checkboxNew.isChecked->type+=“新建”
checkboxOld.isChecked->type+=“Old”
radioGroup.checkedRadioButtonId{
Toast.makeText(applicationContext,“请检查新的或旧的”,Toast.LENGTH\u LONG)
.show()
返回
}
}
val current=LocalDateTime.now()
val formatter=DateTimeFormatter.of模式(“dd-MM-yyyy”)
val formatted=当前格式(格式化程序)
val myRef=FirebaseDatabase.getInstance().getReference(“日期”).child(格式化)
myRef.orderByChild(格式化).startAt(“28-09-2019”).endAt(“31-12-2070”)
val patientId=myRef.push().key
val patient=Info(patientId、姓名、地址、电话号码、日期、类型)
myRef.child((patientId).toString()).setValue(patient).addOnCompleteListener{
Toast.makeText(applicationContext,“信息保存成功”,Toast.LENGTH\u LONG.show())
myRef.addListenerForSingleValueEvent(对象:ValueEventListener{
覆盖数据更改(dataSnapshot:dataSnapshot){
for(dataSnapshot.children中的数据){
val user=data.child(格式化).value.toString()
dataText.text=用户
}
}
覆盖已取消(错误:DatabaseError){
}
})
}
}

我想在用户输入并按下按钮时将数据显示到文本视图中

如果您试图从数据库中读取
date
属性,请更改此选项:

val user = data.child(formatted).value.toString()
为此:

val user = data.child("date").value.toString()

child()
中,需要传递属性的名称

什么是
child(格式化)
?child(格式化)每天按日期创建“dd-mm-yy”编队子级-@Peter haddad实际上我需要“04-10-2019”值。当用户输入内容并点击按钮时,给定的数据将显示在文本视图中。此
val user=data.child(“日期”).value.toString()
应为您提供
04-10-2019
yeap,但它不会检索用户给定的值。只显示05-10-2019这门课有什么问题吗?