У меня есть tableView, в котором есть количество ячеек для каждого сообщения. Мне нужно наблюдать за изменениями в нескольких различных свойствах (availability
&& hours
), и я хотел бы обновить их в указанных ячейках c, к которым они относятся. Это то, что я придумал, но я не думаю, что это правильный способ сделать это, потому что мне нужно только слушать изменения свойств availability
&& hours
.
struct Post {
var postId: String
var uid: String
var availability: Bool // this can change
var hours: String // this can change
}
var arrOfPosts = [Post]() // 1 - n posts
override viewDidLoad() {
super.viewDidLoad()
for post in arrOfPosts {
let postId = post.postId
Database....child(postId).observe( .childChanged, with: { (snapshot) in
let updatedPostId = snapshot.key
if let indexOfItem = self.arrOfPosts.firstIndex(where: { $0.postId == updatedPostId }) {
// update post in cell via batchUpdate
}
})
Database....child(postId).observe( .removed, with: { (snapshot) in
let deletedPostId = snapshot.key
if let indexOfItem = self.arrOfPosts.firstIndex(where: { $0.postId == deletedPostId }) {
// remove cell via batchUpdate
}
})
}
}