尝试为Firebase数据库设置Child

时间:2018-08-25 22:31:18

标签: android firebase-realtime-database kotlin

我正在尝试将聊天消息添加到数据库,并且我正在使用子构造函数为消息添加时间戳,因此它不会一直覆盖自身,但由于某种原因,它不会添加子项,只是这是我的代码:

private fun sendData(){

        val editText = groupsInput
        val database = FirebaseDatabase.getInstance()
        val myRef = database.getReference("message")

        myRef.setValue(com.ntx_deisgns.cyberchatter.cyberchatter.Message(editText.text.toString()))
        val mDatabase: DatabaseReference? = null
        mDatabase?.
                child("Group Chat")?.
                child(java.lang.String.valueOf(System.currentTimeMillis()))?.
                setValue(com.ntx_deisgns.cyberchatter.cyberchatter.Message(editText.text.toString()))

        //clear the text
        editText.setText("")
    }

请注意,我设置了一个“组聊天”的子级和一个java.lang.String.valueOf(System.currentTimeMillis())的子级,但是由于某种原因,它根本没有添加这些子级。我在这里做什么错了?

2 个答案:

答案 0 :(得分:0)

您需要为mDatabase提供一个值。当前为空,因此不能用于将数据发送到数据库。

答案 1 :(得分:0)

尝试添加推送,

child("Group Chat").push().child(java.lang.String.valueOf(System.currentTimeMillis())).setValue(com.ntx_deisgns.cyberchatter.cyberchatter.Message(editText.text.toString()))

现在,您已对其进行了设置,因此仅使它成为Group Chat子项,然后每次仅更改数据,而不会使用新的时间戳创建新的子项。因此,推送将生成一个随机密钥,然后插入时间戳。