Advertisement
Guest User

code

a guest
May 9th, 2016
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.99 KB | None | 0 0
  1. struct User{
  2. let uid:String?
  3. let name:String?
  4. }
  5.  
  6. class TableViewController: UITableViewController {
  7.  
  8. var firebase = Firebase(url: "https://myurl/")
  9. var childAddedHandler = FirebaseHandle()
  10. var listOfMessages = NSMutableDictionary()
  11.  
  12. override func viewDidLoad() {
  13. super.viewDidLoad()
  14.  
  15. childAddedHandler = firebase.childByAppendingPath("posts").observeEventType(FEventType.Value, withBlock: { (snapshot:FDataSnapshot!) in
  16.  
  17. self.firebaseUpdate(snapshot)
  18.  
  19. })
  20.  
  21. /* childAddedHandler = firebase.observeEventType(FEventType.ChildAdded, withBlock: { (snapshot:FDataSnapshot!) in
  22.  
  23. self.firebaseUpdate(snapshot)
  24.  
  25. })*/
  26. }
  27.  
  28. func firebaseUpdate(snapshot:FDataSnapshot!){
  29.  
  30.  
  31. if let newMessages = snapshot.value as? NSDictionary{
  32.  
  33. for newMessage in newMessages{
  34. let key = newMessage.key as! String
  35. let messageExist = (self.listOfMessages[key] != nil)
  36.  
  37. if !messageExist{
  38. self.listOfMessages.setValue(newMessage.value, forKey: key)
  39. }
  40.  
  41. }
  42.  
  43. }
  44. dispatch_async(dispatch_get_main_queue()){ [unowned self] in
  45. self.tableView.reloadData()
  46. }
  47.  
  48.  
  49. }
  50.  
  51. @IBAction func AddMessage(sender: AnyObject) {
  52.  
  53. }
  54.  
  55. @IBAction func Logout(sender: AnyObject) {
  56. firebase.unauth()
  57. self.dismissViewControllerAnimated(true, completion: nil)
  58. }
  59.  
  60. override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
  61. if let messageVController = segue.destinationViewController as? MessageViewController{
  62.  
  63. messageVController.onMessageAvailable = {[weak self] (data) in
  64.  
  65. if let weakSelf = self {
  66. weakSelf.receiveMessageToSendToFirebase(data)
  67. }
  68.  
  69. }
  70. }
  71. }
  72.  
  73. func receiveMessageToSendToFirebase(data : String) {
  74. let details = ["message":data, "sender":firebase.authData.uid]
  75. firebase.childByAppendingPath("posts").childByAutoId().setValue(details)
  76. }
  77.  
  78.  
  79. override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  80. return listOfMessages.count
  81. }
  82.  
  83. override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
  84. let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
  85.  
  86. let arrayOfKeys = listOfMessages.allKeys
  87. let key = arrayOfKeys[indexPath.row]
  88.  
  89. let value = listOfMessages[key as! String]
  90.  
  91. cell.textLabel!.text = (value as! NSDictionary)["message"] as? String
  92.  
  93. return cell
  94. }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement