Мой код не добавляет новый узел для "User-Messages" в Firebase - PullRequest
0 голосов
/ 12 июня 2019

Мой код отправляет сообщение, которое сохраняется в Firebase под Узлом сообщений. Я пытаюсь использовать технику Firebase Fanout для сохранения (fromId) (который также является идентификатором пользователя (uid) человека, отправившего сообщение) в новом пользовательском сообщении Node. Проблема, с которой я сталкиваюсь, заключается в том, что она не генерирует новый узел. Я пытался изменить uRef.updateChildValues ​​([messageId: 1]). в uRef.setValue, и он успешно генерирует узел, но когда я отправляю другое сообщение, он не добавляет дочерний элемент.

 func  handlesend(){
            let ref = 
Database.database().reference().child("messages")
            let ChildRef = ref.childByAutoId()
            let toId = user!.id!
            let fromId = Auth.auth().currentUser!.uid
            let timestamp: NSNumber = NSNumber(value: 
Int(NSDate().timeIntervalSince1970))
            let values = ["message": msgTextField.text!, "toId": 
toId, "fromId": fromId, "timestamp": timestamp] as [String : Any]
    //        ChildRef.updateChildValues(values)
            ChildRef.updateChildValues(values) { (error, ref) in
                if error != nil{
                    print(error!)
                    return
                }
                print(ChildRef.key!)

                let uRef = 
Database.database().reference().child("user-Messages").child(fromId)
                let messageId = ChildRef.key
                uRef.updateChildValues([messageId: 1])

            }
        }

Узел Firebase

     ovaischatapp
     messages
     -LhA5-OYmcBvViACqmV5
     -LhAALBzbWfvtzWtHjix
     fromId: "d4kXL87nrMPDpDEtwArUNWHiIaz1"
     message: 
     "hey how are you? ..."
    timestamp: 1560334394
toId: "vhgXr9PNvtM17dzc7yVorUuUOau1"
     .........   

users
-LhAD2fpAQMvLUFerjSG
-LhADAHXM1lF7YZFHfzP
........
...