firebaseからデータを取得しようとしています。永続性を有効にしている場合、どのように最新のデータを取得できますか(キャッシュからではありません)。私はkeepSyncedを試した。私はまだ失効したデータを取得します。これは正しい使用法ですか?observeSingleEvent + persistenceを有効にして最新のデータを取得できますか?
userRef = FIRDatabase.database().reference().child("<path>")
userRef.keepSynced(true)
userRef.observeSingleEvent(of: .value, with: { snapshot in
...stale data here...
})
または、observeSingleEventの代わりにobserveを使用する方法がありますか?私は、キャッシュデータを最初に取得し、次にイベントがサーバーからのデータで2回目にトリガーされることを観察するというのは嫌です。したがって、この画面に移動すると、空のテーブルが表示された後、古いデータのあるテーブルが表示され、最新のデータが表示されます。
ありがとうございました。
EDIT:
https://stackoverflow.com/a/34487195/1373592 - この投稿はkeeySyncedが動作するはずと言います。しかし、それは私のために働いていない。私は何か間違っているかどうかを知りたい。
[Firebaseオフライン機能とaddListenerForSingleValueEvent]の可能な重複(https://stackoverflow.com/questions/34486417/firebase-offline-capabilities-and-addlistenerforsinglevalueevent) –
'ObserveSingleEvent'が有効に永続性を持つローカルにキャッシュされたデータをフェッチします。したがって、更新された値に 'observeEvent'を使い、最初の値をスキップする必要がある場合。 詳細:[https://stackoverflow.com/questions/34486417/firebase-offline-capabilities-and-addlistenerforsinglevalueevent/34487195#34487195] [1] –