Как реализовать удаление элемента из массива в функции загрузки данных 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
}
}