2017-10-26 4 views
0

私のアプリケーションでfirebaseリアルタイムデータベースを使用していますが、私は奇妙な問題に直面しています。最初の火災基地の呼び出しは、最初の応答がはるかに速く動作した後、時間がかかりすぎます。最初のfirebase呼び出しでリアルタイムデータベースが最初に応答してから時間がかかるのはなぜですか?

Database.database().reference().child(FireBaseTable.bpmTable).child(firebaseKey).queryOrdered(byChild: "timestamp").observeSingleEvent(of: .value, with: { (snapshot) in 
       print("Initial load done2") 
      }) 

最初に応答した後、同じコードでdiff/sameキーを使用すると、応答がずっと速くなります。

答えて

0

ソリューションは、あなたのルールでインデックスデータに次のようになります。https://firebase.google.com/docs/database/security/indexing-data

{ 
    "lambeosaurus": { 
    "height" : 2.1, 
    "length" : 12.5, 
    "weight": 5000 
    }, 
    "stegosaurus": { 
    "height" : 4, 
    "length" : 9, 
    "weight" : 2500 
    } 
} 

インデックスは次のように設定することができます。

{ 
    "rules": { 
    "dinosaurs": { 
     ".indexOn": ["height", "length"] 
    } 
    } 
} 

「Firebaseあなたはアドホックを行うことができます 任意の子キーを使用してデータのクエリを実行します。インデックスが何であるかを事前に知っている場合は Firebase Realtimeの.indexOnルール クエリのパフォーマンスを向上させるためのデータベースルール。

関連する問題