Skip to content

Instantly share code, notes, and snippets.

@rabimba
Created October 19, 2016 04:26
Show Gist options
  • Select an option

  • Save rabimba/d247717bddda67c3a0d5e6f4580efc9c to your computer and use it in GitHub Desktop.

Select an option

Save rabimba/d247717bddda67c3a0d5e6f4580efc9c to your computer and use it in GitHub Desktop.

Revisions

  1. rabimba created this gist Oct 19, 2016.
    31 changes: 31 additions & 0 deletions FCViewController.swift
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,31 @@
    deinit {
    self.ref.child("messages").removeObserverWithHandle(_refHandle)
    }


    func configureDatabase() {
    ref = FIRDatabase.database().reference()
    // Listen for new messages in the Firebase database
    _refHandle = self.ref.child("messages").observe(.childAdded, with: { [weak self] (snapshot) -> Void in
    guard let strongSelf = self else { return }
    strongSelf.messages.append(snapshot)
    strongSelf.clientTable.insertRows(at: [IndexPath(row: strongSelf.messages.count-1, section: 0)], with: .automatic)
    })
    }


    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    // Dequeue cell
    let cell = self.clientTable .dequeueReusableCell(withIdentifier: "tableViewCell", for: indexPath)
    // Unpack message from Firebase DataSnapshot
    let messageSnapshot: FIRDataSnapshot! = self.messages[indexPath.row]
    let message = messageSnapshot.value as! Dictionary<String, String>
    let name = message[Constants.MessageFields.name] as String!
    let text = message[Constants.MessageFields.text] as String!
    cell.textLabel?.text = name! + ": " + text!
    cell.imageView?.image = UIImage(named: "ic_account_circle")
    if let photoURL = message[Constants.MessageFields.photoURL], let URL = URL(string: photoURL), let data = try? Data(contentsOf: URL) {
    cell.imageView?.image = UIImage(data: data)
    }
    return cell
    }