title: Optional Still Returning Nil After Assigning Value
body: <p>I am working on a similar feature to 'liking/unliking a post'.</p>
  
  <p>I have an MVVM architecture as;</p>
  
  <pre><code>struct MyStructModel {
      var isLiked: Bool? = false
  }
  
  class MyStructView {
      var isLiked: Bool
  
      init(myStructModel: MyStructModel) {
          self.isLiked = myStructModel.isLiked ?? false
      }
  }
  </code></pre>
  
  <p>I successfully get the value of whether the post is liked or not here;</p>
  
  <pre><code>    func isPostLiked(documentID: String, completion: @escaping (Bool) -&gt; Void) {
      guard let authID = auth.id else { return }
      let query = reference(to: .users).document(authID).collection("liked").document(documentID)
      query.getDocument { (snapshot, error) in
          if error != nil {
              print(error as Any)
              return
          }
          guard let data = snapshot?.data() else { return }
          if let value = data["isLiked"] as? Bool {
              completion(value)
          } else {
              completion(false)
          }
      }
  }
  
  func retrieveReviews(completion: @escaping([MyStructModel]) -&gt; ()) {
      var posts = [MyStructModel]()
      let query = reference(to: .posts).order(by: "createdAt", descending: true)
      query.getDocuments { (snapshot, error) in
          if error != nil {
              print(error as Any)
              return
          }
          guard let snapshotDocuments = snapshot?.documents else { return }
          for document in snapshotDocuments {
              if var post = try? JSONDecoder().decodeQuery(MyStructModel.self, fromJSONObject: document.decode()) {
                  // isLiked is nil here...
                  self.isPostLiked(documentID: post.documentID!) { (isLiked) in
                      post.isLiked = isLiked
                      print("MODEL SAYS: \(post.isLiked!)")
                      // isLiked is correct value here...
                  }
                  posts.append(post)
              }
              completion(posts)
          }
      }
  }
  </code></pre>
  
  <p>However, when it gets to my cell the value is still nil.</p>
  
  <h2>Adding Cell Code:</h2>
  
  <pre><code>var post: MyStructView? {
          didSet {
              guard let post = post else { return }
              print(post.isLiked!)
          }
      }
  </code></pre>