私はAndroidアプリケーションでFirebaseデータベースを使用しています。通常、正常に動作します。しかし、データベースが大きくなると、クエリのパフォーマンスは悪化しています。データベース( "elk"と "su"ノードの下)に約5kレコードを追加した後、データベース( "cut"と "user"ノード)を照会しましたが、すべてのクエリは非常に遅いです。データベースのルールにデータインデックスを定義しましたが、機能しませんでした。どのようにして問題を解決できますか?ここで大きなデータセットを持つFirebaseデータベースのクエリは非常に遅い
は私のクエリは、次のとおりです。
// query to get the zones followed by user
FirebaseDatabase.getInstance()
.getReference()
.child("user")
.child(userID)
.child("zones");
// query to get cuts on a zone
FirebaseDatabase.getInstance()
.getReference()
.child("cut")
.child(cutType)
.orderByChild("zoneID")
.equalTo(zoneID);
とき、このような何か非常に遅いと言う。どのくらいスローですか?テスト結果などありますか?どのように我々はネットワークが正常だったか、または電話がうまく機能していたことを知ることができますそれまであなたの問題のより具体的な証拠があるはずです。ネットワーク強度、電話キャッシュパフォーマンスなどのさまざまな要素を念頭に置いて、最小、中規模、大規模のデータベースなどでより具体的なテスト結果を生成してください。 –
JSONツリーの画像を質問に含めました。 Firebaseデータベースコンソールの[エクスポート]ボタンをクリックすると、実際のJSONをテキストとして置き換えてください。 JSONをテキストとして検索可能にすることで、実際のデータを使ってテストしたり、答えに使用したりすることができます。一般的には、これは良いことです。 –
何か遅い場合は、ほぼ例外なく、ネットワーク帯域幅の機能とダウンロードしているデータの機能です。私はすぐには異常に大きいと思われるものは見当たりませんし、あなたのインデックスはクエリに対して正しいように見えます。 jsfiddle/jsbinで問題を再現できる場合は、それを試して、あなたのパフォーマンスとあなたのパフォーマンスとの比較を見てみましょう。 –