func listen()

in firestore/FirestoreExample/LocalCollection.swift [57:82]


  func listen() {
    guard listener == nil else { return }
    listener = query.addSnapshotListener { [unowned self] querySnapshot, error in
      guard let snapshot = querySnapshot else {
        print("Error fetching snapshot results: \(error!)")
        return
      }
      let models = snapshot.documents.map { (document) -> T in
        let maybeModel: T?
        do {
          maybeModel = try document.data(as: T.self)
        } catch {
          fatalError("Unable to initialize type \(T.self) from data \(document.data()): \(error)")
        }

        if let model = maybeModel {
          return model
        } else {
          fatalError("Missing document of type \(T.self) at \(document.reference.path)")
        }
      }
      self.items = models
      self.documents = snapshot.documents
      self.updateHandler(snapshot.documentChanges)
    }
  }