ref.updateChildValues ​​запускает .childMoved дважды базу данных реального времени firebase - PullRequest
0 голосов
/ 30 октября 2019

У меня есть этот метод, который принимает эти слова и сохраняет их как обновление базы данных, но дважды запускает .childMoved, который слушает чат пользователя.

let message = ["message":message,
               "uid":my_uid,
               "timestamp":Firebase.ServerValue.timestamp()] as [String : Any]

let myChatID_info = ["timestamp":Firebase.ServerValue.timestamp(),
                     "uid": user_uid,
                     "unread_messages":0] as [String : Any]

let user_chatID_info = ["timestamp":Firebase.ServerValue.timestamp(),
                        "uid":my_uid,
                        "unread_messages":unread_messages+1] as [String : Any]

let childUpdates = ["/user_chats/\(my_uid)/\(chat_key)/":myChatID_info,
                    "/user_chats/\(user_uid)/\(chat_key)/":user_chatID_info,
                    "messages/\(chat_key)/\(message_key)/":message]

self.ref.updateChildValues(childUpdates)

Это метод, который слушает пользователя. чат, где user_chats

user_chats = ref.child(chatConstants.user_chats).child(myUsername)

func addChatMovedListener(){
    user_chats.queryOrdered(byChild: chatConstants.timestamp).observe(.childMoved, with: {(snapshot) in
        print("chatMoved")
        let index = self.indexOfChat(key: snapshot.key)
        self.getChatObject(snapshot: snapshot) { chat in
            if(index == -1){
                self.chats.insert(chat, at: 0)
                self.tableView.insertRows(at: [IndexPath(row: 0, section: 0)], with: .automatic)
            } else {
                self.chats[index] = chat
                let chat = self.chats.remove(at: index)
                self.chats.insert(chat, at: 0)
                self.tableView.moveRow(at: IndexPath(row: index, section: 0), to: IndexPath(row: 0, section: 0))
            }
        }
    })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...