Swift 未正确附加消息

Swift 未正确附加消息,swift,jsqmessagesviewcontroller,Swift,Jsqmessagesviewcontroller,每当我尝试将消息附加到JSQMessages数组时,它不会出现在collectionView的末尾 错误演示: 检索邮件的我的代码: func retrieveMessages() { let messagesRef = databaseRef.child("messages") var senderID : String! var recieverID : String! var message : JSQMessage! messagesRef.ob

每当我尝试将消息附加到JSQMessages数组时,它不会出现在collectionView的末尾

错误演示:

检索邮件的我的代码:

func retrieveMessages() {

    let messagesRef = databaseRef.child("messages")
    var senderID : String!
    var recieverID : String!
    var message : JSQMessage!

   messagesRef.observe(.value, with: { (snapshot) in

   if let dictionary = snapshot.value as? [String : AnyObject] {

    self.messages.removeAll()

    for each in dictionary {

        let mediaType = each.value["mediaType"] as! String
        let text = each.value["text"] as! String
        let senderDisplayName = each.value["senderDisplayName"] as! String
         senderID = each.value["senderID"] as! String
         recieverID = each.value["reciverID"] as! String
        let time = each.value["time"] as! Int
        message = JSQMessage(senderId: senderID, displayName: senderDisplayName, text: text)

        if senderID == FIRAuth.auth()?.currentUser?.uid {

            if recieverID == self.userUID {

                self.messages.append(message)
                self.collectionView.reloadData()
            }

          }

        }

    }
override func didPressSend(_ button: UIButton!, withMessageText text: String!, senderId: String!, senderDisplayName: String!, date: Date!) {

    JSQSystemSoundPlayer.jsq_playMessageSentSound()
    finishSendingMessage(animated: true)

    let newMessage = messagesRef.childByAutoId()
    let currentTime = Date()
    let currentTimePassed = currentTime.timeIntervalSince1970
    let timeInt = Int(currentTimePassed)
    let messageData = ["text" : text, "senderID" : senderId, "senderDisplayName" : senderDisplayName, "mediaType" : "TEXT", "reciverID" : userUID, "time" : timeInt] as [String : Any]
    newMessage.setValue(messageData)
}
我发送消息的代码:

func retrieveMessages() {

    let messagesRef = databaseRef.child("messages")
    var senderID : String!
    var recieverID : String!
    var message : JSQMessage!

   messagesRef.observe(.value, with: { (snapshot) in

   if let dictionary = snapshot.value as? [String : AnyObject] {

    self.messages.removeAll()

    for each in dictionary {

        let mediaType = each.value["mediaType"] as! String
        let text = each.value["text"] as! String
        let senderDisplayName = each.value["senderDisplayName"] as! String
         senderID = each.value["senderID"] as! String
         recieverID = each.value["reciverID"] as! String
        let time = each.value["time"] as! Int
        message = JSQMessage(senderId: senderID, displayName: senderDisplayName, text: text)

        if senderID == FIRAuth.auth()?.currentUser?.uid {

            if recieverID == self.userUID {

                self.messages.append(message)
                self.collectionView.reloadData()
            }

          }

        }

    }
override func didPressSend(_ button: UIButton!, withMessageText text: String!, senderId: String!, senderDisplayName: String!, date: Date!) {

    JSQSystemSoundPlayer.jsq_playMessageSentSound()
    finishSendingMessage(animated: true)

    let newMessage = messagesRef.childByAutoId()
    let currentTime = Date()
    let currentTimePassed = currentTime.timeIntervalSince1970
    let timeInt = Int(currentTimePassed)
    let messageData = ["text" : text, "senderID" : senderId, "senderDisplayName" : senderDisplayName, "mediaType" : "TEXT", "reciverID" : userUID, "time" : timeInt] as [String : Any]
    newMessage.setValue(messageData)
}

你能在发送消息时显示你的代码吗?添加了我发送消息的代码在你的Firebase数据库中消息数据的顺序是什么?例如,GIF演示中的“好”文本在数据库中的顺序是否正确?如果是这样,那么我们可以安全地假设您的
接收消息
代码是错误的。