You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

存储到数据库时数据损坏,EditText输入与Firebase存储数据不匹配如何解决

问题根因

你代码中获取EditText输入内容的写法存在错误:直接调用binding.etName.toString()时,实际调用的是View类默认的toString()方法,返回的是EditText控件的类名、内存地址等对象标识字符串,并非用户输入的文本内容,这就是Firebase中出现异常数据的直接原因。

修复方案

所有获取EditText输入内容的位置,都需要先获取控件的text属性再转字符串,修正后的代码示例:

binding.btnUpload.setOnClickListener {
    showProgressBar()
    // 修正获取输入内容的写法
    val name= binding.etName.text.toString()
    val fathers_name =binding.etFatherName.text.toString()
    val gender=binding.etGender.text.toString()
    val dob=binding.etDob.text.toString()
    val time_place = binding.etTimePlace.text.toString()
    val qualification = binding.etQualification.text.toString()
    val job = binding.etJob.text.toString()
    val Height = binding.etHeight.text.toString()
    val fathers_qualification = binding.etFatherQualification.text.toString()
    val requirement = binding.etRequirement.text.toString()
    val address = binding.etAddress.text.toString()
    val contact=binding.etContact.text.toString()

    val candidate= Candidates(name,fathers_name,gender,dob,time_place,
        qualification,job,Height,fathers_qualification,requirement,address, contact)

    database.child(System.currentTimeMillis().toString()).setValue(candidate).addOnCompleteListener{
        if (it.isSuccessful){
            uploadProfilePic()
            // 原逻辑错误:成功提示要放在成功分支内,避免失败也弹成功提示
            Toast.makeText(this, "Successfully saved", Toast.LENGTH_SHORT).show()
        }else{
            hideProgressBar()
            Toast.makeText(this, "Failed to upload profile", Toast.LENGTH_SHORT).show()
        }
    }.addOnFailureListener {
        hideProgressBar()
        Toast.makeText(this, "Failed", Toast.LENGTH_SHORT).show()
    }
}
额外优化建议
  • 提交数据前增加空校验,必填字段如果为空直接拦截提交,避免无效数据入库,示例:if (name.isBlank()) { Toast.makeText(this, "请输入姓名", Toast.LENGTH_SHORT).show() return@setOnClickListener }
  • 建议调整上传逻辑:先上传图片拿到云端存储URL,再把图片URL和表单信息一起写入Firebase数据库,避免出现数据库已存数据但图片上传失败导致的数据不完整问题。

内容的提问来源于stack exchange,提问作者Harshad Raut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:36:02