Swift -Firebase, как наблюдать несколько сообщений в ячейках tableView - PullRequest
0 голосов
/ 12 марта 2020

У меня есть 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
          }
      })
    }
}

1 Ответ

0 голосов
/ 12 марта 2020

Это правильно, но вам нужно указать c в пути, чтобы минимизировать нагрузку на ответ, что Firebase добавляет больше затрат для

Database....child("\(postId)/availability")

То же самое для hours

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...