【问题标题】:Trying to set Child for firebase database尝试为 Firebase 数据库设置 Child
【发布时间】:2018-08-25 22:31:18
【问题描述】:

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

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()) 的孩子,但由于某种原因,它根本没有添加这些孩子。我在这里做错了什么?

【问题讨论】:

  • 为什么邮件被保存了两次?

标签: android firebase-realtime-database kotlin


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    尝试添加推送,

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

    现在你已经设置好了,所以它只是获取群聊子项,然后每次都更改数据,而不是创建一个具有新时间戳的新子项。所以推送会生成一个随机密钥,然后插入时间戳。

    【讨论】:

      猜你喜欢
      • 2021-12-16
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      • 2020-12-29
      • 1970-01-01
      • 2017-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多