2017-05-19 11 views
0

ListenerForSingleValueEventは、特定の操作を実行する前にデータベース内の特定の値をチェックしています。しかし、.setPersistenceEnabledが真であるため、ディスクキャッシュの値を使用します。この値は、間違っていて更新されない可能性があり、ユーザーができなくてもタスクを実行します。特定のDatabaseReferenceに対してFirebase.setPersistenceEnabled()を設定します。

私は.setPersistenceEnabledを偽に設定することができましたが、チャット機能があり、ユーザーがアプリを開くたびにメッセージを再読み込みすることは非常に不便です。特定のデータベース参照のみに.setPersistenceEnabledを設定し、毎回他のすべての参照を再ロードする方法がありますか(つまり、.setPersistenceEnabled)、すべてのデータベース参照に対して毎回特定の参照を再ロードします。助けてくれてありがとう。

答えて

0

はあなたがQuery.keepSynced()使用することができるかもしれないような音:場所にkeepSynced(true)を呼び出すことにより

を、その 場所のためのデータが自動的にダウンロードされますと 何のリスナーがために接続されていない場合でも、同期を保ちますその場所。さらに、 の場所は同期されたままですが、永続的な ディスクキャッシュからは削除されません。

+0

私はそれに見えたが、 'keepSyncedは(真)'(真)setPersistenceEnabled 'なしでは動作しません' –

+0

さて、私はこの答えを読んだ後、より良いそれを理解しました:http://stackoverflow.com/ a/40193807/4815718 –

+0

どうすればいいですか? –

関連する問題