Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct User{
- let uid:String?
- let name:String?
- }
- class TableViewController: UITableViewController {
- var firebase = Firebase(url: "https://myurl/")
- var childAddedHandler = FirebaseHandle()
- var listOfMessages = NSMutableDictionary()
- override func viewDidLoad() {
- super.viewDidLoad()
- childAddedHandler = firebase.childByAppendingPath("posts").observeEventType(FEventType.Value, withBlock: { (snapshot:FDataSnapshot!) in
- self.firebaseUpdate(snapshot)
- })
- /* childAddedHandler = firebase.observeEventType(FEventType.ChildAdded, withBlock: { (snapshot:FDataSnapshot!) in
- self.firebaseUpdate(snapshot)
- })*/
- }
- func firebaseUpdate(snapshot:FDataSnapshot!){
- if let newMessages = snapshot.value as? NSDictionary{
- for newMessage in newMessages{
- let key = newMessage.key as! String
- let messageExist = (self.listOfMessages[key] != nil)
- if !messageExist{
- self.listOfMessages.setValue(newMessage.value, forKey: key)
- }
- }
- }
- dispatch_async(dispatch_get_main_queue()){ [unowned self] in
- self.tableView.reloadData()
- }
- }
- @IBAction func AddMessage(sender: AnyObject) {
- }
- @IBAction func Logout(sender: AnyObject) {
- firebase.unauth()
- self.dismissViewControllerAnimated(true, completion: nil)
- }
- override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
- if let messageVController = segue.destinationViewController as? MessageViewController{
- messageVController.onMessageAvailable = {[weak self] (data) in
- if let weakSelf = self {
- weakSelf.receiveMessageToSendToFirebase(data)
- }
- }
- }
- }
- func receiveMessageToSendToFirebase(data : String) {
- let details = ["message":data, "sender":firebase.authData.uid]
- firebase.childByAppendingPath("posts").childByAutoId().setValue(details)
- }
- override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- return listOfMessages.count
- }
- override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
- let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
- let arrayOfKeys = listOfMessages.allKeys
- let key = arrayOfKeys[indexPath.row]
- let value = listOfMessages[key as! String]
- cell.textLabel!.text = (value as! NSDictionary)["message"] as? String
- return cell
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement