firebase匿名認証を使用し、フォアグラウンドサービスからfirebaseデータベースに書き込むアンドロイドアプリを作成しました。私はonDisconnect().removeValue()
を使用して、websocketが閉じられたときに私のアプリケーションで作成されたデータをクリーンアップしています。ユーザーがアプリに積極的に関わっている場合は、onDisconnect()
が予期したとおりに呼び出されます(つまり、セキュリティルールは正常です)。しかし、フォアグラウンドサービスが長時間(例えば、夜間、画面が消灯など)実行されている場合、onDisconnect()
コールは決して再びトリガーされません。アプリはウェイクアップ(ファイヤーベースサーバーなどとの通信)時に機能しますが、アイドル時間の後にアプリを終了すると、onDisconnect()
コールが何とか失われているようです。AndroidでフォアグラウンドサービスからFirebaseを正しく使用する方法
私は、匿名認証セッションがfirebase SDKによって毎時静かにリフレッシュされることを読んでいます。これがアクティビティで起こっている可能性があります(そして、OSによって殺されますが、フォアグラウンドサービスを有効にしておく)ので、サーバはコールバックを廃棄することになりますonDisconnect
?もしそうなら、この機能はフォアグラウンドサービス内に保存できますか?
ありがとう@Aubtin。コードに関する問題ではなく、Firebaseチームが問題を認識していることを知っておくとよいでしょう。 –