Как реализовать удаление элемента из массива в функции загрузки данных SwiftUI

Подскажите у меня есть функция загрузки элементов в массив, так же добавлен обозреватель изменения, удаления и добавления нового элемента. как обновить массив данных для обновления вью?

    func getComments(roomId: String, onSuccess: @escaping ([ChatModel]) -> Void, onError: @escaping(_ error: String) -> Void, newComment: @escaping(ChatModel) -> Void, listener: @escaping(_ listenerHandle: ListenerRegistration) -> Void) {
    
    let listenerPosts = ChatService.commentsId(roomId: roomId).collection("roomChat").order(by: "date", descending: false).addSnapshotListener {
        (snapshot, error) in
        guard let snapshot = snapshot else { return }
        
        var comments = [ChatModel]()
        
        snapshot.documentChanges.forEach {
            (diff) in
            if (diff.type == .added) {
                let dict = diff.document.data()
                guard let decoded = try? ChatModel.init(fromDictionary: dict) else { return }
                newComment(decoded)
                comments.append(decoded)
            }
            if (diff.type == .modified) {
                print("Modified")
            }
            if (diff.type == .removed) {
                print("Removed")
        
            }
        }
        onSuccess(comments)
    }
    listener(listenerPosts)
    
}

func loadComment() {
    self.comments = []
    self.isloading = true
    
    self.getComments(roomId: roomId, onSuccess: {
        (comments) in
        if self.comments.isEmpty {
            self.comments = comments
        }
    }, onError: {
        (err) in
        
    }, newComment: {
        (comment) in
        if !self.comments.isEmpty {
            self.comments.append(comment)
        }
    }) {
        (listener) in
        self.listener = listener
    }
}

Ответы (0 шт):