2016年5月からアップデートされたFirebaseで、Auth Database Push通知を実装しています。
Xcode 8.0
OS X 10.11.5
Firebase 3.7.1
Firebase Database 3.7.1
Firebase Auth 3.0.5
#ViewControllerあるいは、LoginViewControllerが最初の画面となります。ログイン状態なら、そのままListViewControllerに遷移するようになっています。データの追加はListViewControllerの右上のプラスボタンからViewControllerに遷移することで、textfieldから文字をPOSTすることができます。
EmailとPasswordでユーザー認証が可能になっています。
ViewControllerクラスのcreate()という関数でtextfieldに打ち込んだ文字をユーザーのTokenと日時と一緒に送信しています。
DatabaseのDB設計としては、 ユーザーのTokenをIDとして、そこからViewControllerのcreate()関数で送られたデータをコレクションとして保存しています。
ListViewControllerのread()関数で自身のPOSTしたデータのみを読み込んでいます。
それぞれをTableViewで表示しています。
FIRDataEventTypeをValueにすることで、すべての変化に対して対応しています
ViewControllerのupdate関数でデータベース上の該当のデータを更新しています。
isCreateで更新か作成かをBoolで判断しています。 post関数でisCreateがどちらかによってcreateとupdateを切り替えてます
ListViewControllerに実装しているdelete関数をtableview(tableview:commitEditingStyle)の中で呼び出し、NSIndexPathを渡すことで、該当するデータをDatabaseから削除しています。
Firebaseのコンソールからプッシュ通知を送ることができます。また、未読のプッシュ通知の数はバッジで表示します。
未読かどうか、プッシュ通知の一覧をTableViewで表示する機能などは今後実装予定です。
まだまだ理解ができていない部分が多いので、プルリクエスト大歓迎です。 プルリクエストお待ちしております。