【问题标题】:My firebase cannot upload to the realtime database? Android Kotlin我的 Firebase 无法上传到实时数据库?安卓科特林
【发布时间】:2021-05-31 04:58:10
【问题描述】:

我正在尝试从 android kotlin 创建一个 firebase 应用。我已经设置了 firebase 并将其连接到我的应用程序。但是我无法将数据上传到数据库?当我单击按钮时,它不会上传,就像跳过代码上传一样。这是我的代码:

class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        binding.buttonSave.setOnClickListener {
            saveData()
        }
    }

    private fun saveData() {
        val name = binding.etNama.text.toString().trim()
        val address = binding.etAlamat.text.toString().trim()

        if (name.isEmpty()) {
            binding.etNama.error = "Isi nama"
            return
        }
        if (address.isEmpty()) {
            binding.etAlamat.error = "Isi alamat"
            return
        }
        val ref = FirebaseDatabase.getInstance().getReference("mahasiswa")
        val mhsId = ref.push().key
        val mhs = Mahasiswa(mhsId,name,address)
        if (mhsId!=null){
            ref.child(mhsId).setValue(mhs).addOnCompleteListener {
                Toast.makeText(applicationContext,"Data berhasil ditambahkan",Toast.LENGTH_SHORT).show()
            }
        }
    }
}

我的 firebase 数据库在这里保持为空 Database Screenshot

以下是安全规则: Security Rules Screenshot

谁能帮帮我?因为我想不通。

【问题讨论】:

  • Toast.makeText(applicationContext,"Data berhasil ditambahkan",Toast.LENGTH_SHORT).show() 显示了什么?
  • @AlexMamo 一点也不!该代码就像跳过该代码一样。我检查了一下,原因似乎是它没有连接到数据库。但我不确定为什么,因为在 firebase 助手中它说它已连接
  • 您确定设备上有互联网连接吗?
  • 是的,我的设备已连接到互联网,并且已经在我的清单中包含了权限@AlexMamo

标签: android firebase kotlin firebase-realtime-database


【解决方案1】:

我认为问题在于您如何更新数据。当我创建一个节点时,我通常喜欢我发布的代码。

试试下面的代码 sn-p。我觉得可以帮到你

FirebaseDatabase.getInstance().reference.child("mahasiswa").setValue(mhs)
            .addOnCompleteListener{
                Toast.makeText(this, "Data save correctly!", Toast.LENGTH_LONG).show()
            }
            .addOnSuccessListener {
                Toast.makeText(this, "Data PUSH ONLINE correctly!", Toast.LENGTH_LONG).show()
            }.addOnFailureListener {
                Log.d("Error", "error: " + it.message)
            }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多