发送消息按钮卡住并发送多条消息

时间:2016-08-04 23:55:42

标签: ios swift firebase firebase-realtime-database

我对ios开发有点新鲜。

我使用swift和firebase在一些教程后创建了一个消息传递应用程序。

我最近遇到了一个错误,有时,当我想发送消息时:我会写出我的消息,然后我会按发送。消息将在实时数据库上更新,但文本字段不会清除,并且消息不会显示。然后我会多次按下发送按钮,同样的事情会发生。直到最后,所有消息都会立即发送。

我有点困惑,我的代码有问题,还是这是一个firebase问题。有没有解决方法?

 func handleSend() {
        if chattextfield.text?.characters.count != 0 {
            let ref = FIRDatabase.database().reference().child("messages")
            let childRef = ref.childByAutoId()
            //is it there best thing to include the name inside of the message node
            let toId = user!.id!
            let fromId = (userdefaults.objectForKey("FBid")) as! String
            let timestamp: NSNumber = Int(NSDate().timeIntervalSince1970)
            let values = ["text": chattextfield.text!, "toId": toId, "fromId": fromId, "timestamp": timestamp]
            //        childRef.updateChildValues(values)

            childRef.updateChildValues(values) { (error, ref) in
                if error != nil {
                    print(error)
                    return
                }

                self.chattextfield.text = nil

                guard let toId = self.user?.id else {
                    return
                } //unwrap this carefully 8:43, later ...
                let userMessagesRef = FIRDatabase.database().reference().child("user-messages").child(fromId).child(toId)
                let specificMessages = FIRDatabase.database().reference().child("messages received").child(toId).child(self.userdefaults.objectForKey("FBid") as! String)

                let messageId = childRef.key
                userMessagesRef.updateChildValues([messageId: 1])
                specificMessages.updateChildValues([messageId: 1])
                let recipientUserMessagesRef = FIRDatabase.database().reference().child("user-messages").child(toId).child(fromId)
                recipientUserMessagesRef.updateChildValues([messageId: 1])
            }



        }

0 个答案:

没有答案