【Swift】アプリを終了された時の、Firebseでの対処

こんにちは、そるです!
今、私はFirebaseを使ってスマホアプリを開発しているのですが、 自分がつまったことを書いていこうと思います。   複数人と通信をしながらゲームをするアプリを作成してるのですが、 ゲームを作ったホストの接続が切れたりした時に
Firebase内のデータを削除したかったのですが、全く削除されない。。。   appDelegateのapplicationWillTerminate上でデータの削除をさせる記述をしても、 削除される前にアプリが終了してしまい、なすすべがありませんでした。 やむを得なくタスクを切られた時のデータをデバイス上に保存して、 次回起動された時にデータの削除をするといった苦肉の策を行おうとしていました。   いやいや、そんなことはないと思いネットで調べたのですが、出てこず、、、、
これはマジでないのかも!?と思い始めていましたが、天下のGoogleさんが買収したFirebaseに タスクが切られた時の対処がなされていないなんてありえない!!と思い頑張ってリファレンスを読みました!   そしたら、ありました!!

connectedRefはFirebaseとの接続状況を判断しているらしく、型はBool
オブザーバーイベントタイプで接続が確認されたら、.onDisconnectRemoveValue()を設置するっぽい。
で、接続が切れたと同時に、設置していた処理を実行してくれるらしい!   結果、タスクを切られた時にFirebsaeのデータを削除してくれたのはいいんですけど、
このコードを読まれた瞬間にonDisconnectRemoveValue()を設置してしまうので、
その後の、何かの条件分岐をさせたい時どうすればいいか、また悩んでいます。。。(笑) けど、とりあえずできてよかったです!
以上です!

Sol

新卒エンジニアのそるてぃです!SwiftでiOSアプリ開発をしてます!!バンドが好きです!特に、MWAM, RADWIMPS, MONOEYESが好きです!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です