반응형
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let uid = FIRAuth.auth()!.currentUser!.uid let ref = FIRDatabase.database().reference() let key = ref.child("users").childByAutoId().key var isFollower = false ref.child("users").child(uid).child("following").queryOrderedByKey().observeSingleEvent(of: .value, with: { snapshot in if let following = snapshot.value as? [String : AnyObject] { for (ke, value) in following { if value as! String == self.user[indexPath.row].userID { isFollower = true ref.child("users").child(uid).child("following/\(ke)").removeValue() ref.child("users").child(self.user[indexPath.row].userID).child("followers/\(ke)").removeValue() self.tableview.cellForRow(at: indexPath)?.accessoryType = .none } } } if !isFollower { let following = ["following/\(key)" : self.user[indexPath.row].userID] let followers = ["followers/\(key)" : uid] ref.child("users").child(uid).updateChildValues(following) ref.child("users").child(self.user[indexPath.row].userID).updateChildValues(followers) self.tableview.cellForRow(at: indexPath)?.accessoryType = .checkmark } }) ref.removeAllObservers() } func checkFollowing(indexPath: IndexPath) { let uid = FIRAuth.auth()!.currentUser!.uid let ref = FIRDatabase.database().reference() ref.child("users").child(uid).child("following").queryOrderedByKey().observeSingleEvent(of: .value, with: { snapshot in if let following = snapshot.value as? [String : AnyObject] { for (_, value) in following { if value as! String == self.user[indexPath.row].userID { self.tableview.cellForRow(at: indexPath)?.accessoryType = .checkmark } } } }) ref.removeAllObservers() } | cs |
반응형
'ios 뽀개기 > 실전' 카테고리의 다른 글
ios 실전 앱 만들기 : 어떤 앱이 만들어 질까 (0) | 2018.05.15 |
---|---|
alert 커스텀 슬라이더 (0) | 2018.01.03 |
alert 커스텀 - 이미지 (0) | 2018.01.03 |
alert 커스텀 - 지도 2 (0) | 2018.01.03 |
alert 커스텀 - 지도1 (0) | 2018.01.03 |
댓글