これは私の初めてのリモートデータベースの作業です。Firebaseはデータをローカルストレージにキャッシュするか、クエリ結果だけをキャッシュしますか?また、オンラインの場合、ローカルDBにヒットしますか?
私は、同じ構文を使用しているクエリがキャッシュを利用することをドキュメントから知っています。つまり、次のコードでは、リモート接続中に最初のクエリがヒットし、2番目のクエリが実行される前に接続が切断されると、2番目のクエリは引き続きキャッシュを介して動作します。
let scoresRef = FIRDatabase.database().referenceWithPath("scores")
scoresRef.queryOrderedByValue().queryLimitedToLast(4).observeEventType(.ChildAdded, withBlock: { snapshot in
print("The \(snapshot.key) dinosaur's score is \(snapshot.value)")
})
scoresRef.queryOrderedByValue().queryLimitedToLast(2).observeEventType(.ChildAdded, withBlock: { snapshot in
print("The \(snapshot.key) dinosaur's score is \(snapshot.value)")
})
はオフラインで一度成功するために、既に取得したデータのための任意の形式でクエリを引き起こし、それ自体がキャッシュされたドキュメント内のデータです。たとえば、この例では、キーでスコアの最後の4番目をフェッチしようとする3番目のオフラインクエリがあった場合、キャッシュを介して動作しますか?
リモート接続が機能している場合、FirDataEventTypeクエリはリモートに直接送られますか、リモートが実行される前にローカルクエリが実行されますか?
ありがとうございました!