firebaseのrealtimedatabaseを用いて以下コードでonline/offlineの取得を実装しました。
swift
1let database = Database.database() 2 let uid = Auth.auth().currentUser!.uid 3 // ".info/connected"という接続状況に応じて値の変わる特別なパスを監視 4 database.reference(withPath: ".info/connected").observe(.value) { snap in 5 let connected = snap.value as? Bool ?? false 6 print("connected: (connected)") 7 if !connected { 8 return 9 } 10 let statusRef = database.reference().child("status").child(uid) 11 // 接続が確立されたら、オフラインになったタイミングで更新したい処理を予約、 12 statusRef.onDisconnectSetValue([ 13 "state": "offline", 14 ]) 15 {(error, _) in 16 // stateをonlineに変更 17 statusRef.setValue([ 18 "state": "online", 19 ]) 20//以下でcloudStoreの方にもonlineが反映できている(しかし、offlineを伝えられない) 21 self.db.document(self.user!.uid).updateData([ 22 "state": "online" 23 ]) 24 }
上記コードではしっかりとrealtimedatabaseの方には反映されています。
しかしながら上記ではcloudStoreにonlineのデータしか渡すことができず、realtimedatabaseの方がofflineになったとほぼ同時にcloudbatabaseにもofflineのデータを渡したいのですがどのように実装したら良いのでしょうか?
解答よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/01 16:19
2019/09/01 16:25
2019/09/01 18:28