title: New Firebase retrieve data and put on the tableView (Swift)
body: <p>I made a simple social media with new Firebase, and I successfully save string with database and image with storage, but when it comes to retrieve data back to the tableView the unusual things happen!</p>
  
  <p>all the images retrieve back randomly show up and continually shift, but other part shows perfectly or when I using return posts.count tableView shows no post.</p>
  
  <p>Hope someone can kindly give me some suggestion</p>
  
  <pre><code>    import UIKit
      import Firebase
      import FirebaseStorage
  
  class timelineTableViewController: UITableViewController {
  var posts = [Post]()
  var databaseRef: FIRDatabaseReference!
  var storageRef: FIRStorageReference!
  
  override func viewDidLoad() {
      super.viewDidLoad()
      databaseRef = FIRDatabase.database().reference()
      storageRef = FIRStorage.storage().reference()
  
  }
  
  
  override func numberOfSectionsInTableView(tableView: UITableView) -&gt; Int {
      // #warning Incomplete implementation, return the number of sections
      return 1
  }
  
  override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -&gt; Int {
      // #warning Incomplete implementation, return the number of rows
      return posts.count
  
  }
  override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -&gt; UITableViewCell {
      let cellIdentifier = "postCell"
      let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath)as! timelineTableViewCell
  
      let userPostRef = self.databaseRef.child("posts")
      userPostRef.observeEventType(.ChildAdded, withBlock: {(snapshot) in
          if let postAdd  = snapshot.value as? NSDictionary{
              let myPost = Post(data: postAdd)
              self.posts.insert(myPost, atIndex:0)
  
              cell.usernameLabel.text = self.posts[indexPath.row].username
              cell.postText.text = self.posts[indexPath.row].postText
              cell.timeLabel.text = self.posts[indexPath.row].time
              let url = snapshot.value?["postPhoto"] as! String
              let userPhotoUrl = snapshot.value?["userPhoto"] as! String
  
              FIRStorage.storage().referenceForURL(url).dataWithMaxSize(10 * 1024 * 1024, completion: { (data, error) in
                  let postPhoto = UIImage(data: data!)
                  cell.postPhoto.image = postPhoto
                  FIRStorage.storage().referenceForURL(userPhotoUrl).dataWithMaxSize(10 * 1024 * 1024, completion: { (data, error) in
                      let userPhoto = UIImage(data: data!)
                      cell.userPhoto.image = userPhoto
  
                  })
  
  
  
  
          })
          }
      })
  
          return cell
      }
  
      }
  </code></pre>