向实时数据库添加新数据是否有任何错误?

Is there any error for adding a new data to realtime database?

private lateinit var cDatabaseRef: DatabaseReference

private fun addUserToDatabase (uid:String,custID:String,custName:String,custPostAddress:String,custPhoneNumber:String,email:String){
       try{
            cDatabaseRef = FirebaseDatabase.getInstance().getReference()
            val newCustomer = Customer(custName,email,custID,custPostAddress,custPhoneNumber,uid)
            cDatabaseRef.child("Customers").child(uid).setValue(newCustomer).addOnSuccessListener { Toast.makeText(this, "Success added", Toast.LENGTH_SHORT).show()
                val intent = Intent(this, CustLoginActivity::class.java)
                finish()
                startActivity(intent)
            }

        } catch(e : Exception){
            Toast.makeText(this, "Some error occurred", Toast.LENGTH_SHORT).show()
        }

    }

问题是,没有出现添加成功,firebase的Realtime Database也没有添加任何数据。我还添加了 OnFailureListener 和 OnCanceledListener,但两者都没有检测到错误。 虽然没有报错,但是数据库并没有新增任何数据

将数据写入实时数据库时无需使用 try-catch。 DatabaseReference#setValue(Object value) returns an object of type Task. That being said, you can use addOnCompleteListener(),以检查任务是否成功或失败并出现异常。在代码中,应该如下所示:

cDatabaseRef.child("Customers").child(uid).setValue(newCustomer).addOnCompleteListener { task ->
    if (task.isSuccessful) {
        Log.d(TAG, "Data written successfully.")
    } else {
        task.exception?.message?.let {
            Log.d(TAG, it)   
        }
    }
}

问题是实时数据库的URL不包含在jason文件中,这可能是因为我在创建实时数据库之前包含了jason文件。解决方法如下

 cDatabaseRef = FirebaseDatabase.getInstance("AddingURL from firebase realtime database").getReference()