2017-08-22 6 views
0

firebaseデータベースの別のリストの中に別のリストのリストを入れようとしていますが、現在firebaseとAndroidのappにあります。アプリは非常に遅く、私はyoutubeから理解していますfirebaseがこのような状況を処理する方法のため、私はlokkedと別のリストなどのリストを格納するための別の方法で何も得ていない...誰もが私がやります? spotifyのような大きなアプリは、GoogleのクラウドとFirebaseをベースにしているとわかっています。彼らはfirebaseの別のリストの中にリストを使用していると確信していますが、どうすればアプリを遅くすることはできますか?あなたが異なるノード内の項目を分離することができ、ここでfirebaseデータベースのリストの中にリストを保存する最良の方法

は私firebaseデータベースがしたい方法ですが、現在は別のリスト内の以下のリストでそれは非常にラグで、私のアプリを遅く...

+1

データを大きく入れ子にする必要はありません。たとえば、写真自体の一部ではなく、完全に別の参照にコメントを含めることができます。 –

+0

あなたの質問にJSONツリーの画像が含まれています。実際のJSONをテキストとして置き換えてください。このテキストは[Firebaseデータベースコンソール](https://console.firebase.google.com/project/_/database/data/)の[Export JSON]リンクをクリックすることで簡単に取得できます。 。 JSONをテキストとして検索可能にすることで、実際のデータを使ってテストしたり、答えに使用したりすることができます。一般的には、これは良いことです。 –

+0

深く入れ子にされたデータがあなたのアプリのパフォーマンス上の問題の原因であることが既に分かったようです。教育上の推測(あなたは[問題を再現する最小限のコード(http://stackoverflow.com/help/mcve)を共有していませんでした])は、あまりにも多くのデータをダウンロードしているということです。コメントを別のトップレベルのリストに保存するなど、データをフラット化することができます。大きなアプリのパフォーマンスを向上させる魔法のスイッチはありません。アプリのユースケースやパフォーマンス要件に合わせて最適なデータモデルを選択する必要があります。 –

答えて

0

Firebaseではすべて.push()があなたにUIDを与えます。

ユーザーが多くのコメントを付けている写真が多い場合は、あなたが知っているほど重いことがあります。

ユーザーのコメントにはコメント、説明、URL、好きなものだけがあればコメントを簡単に削除できます。

user_photos 
|_ user_id 
| |_ pic_id 
|  |_ url 
|  |_ likes 
|  |_ description 
|  |_ comments_id 
pics_comments 
|_ pic_id 
    |_ comment_id 
     |_ text 
     |_ user_id 

IDまたは参照を取得するためにfirebaseをもう一度呼び出す必要があるため、これ以上を区切っても意味がありません。そしてこの構造では、あなたがそれを照会して最初のX写真を表示してから、ユーザーがより多くを表示したり、すべてを表示したり、必要に応じてユーザーがスクロールしたときにのみコメントを読み込んだりすることができるコメントを見るにはクリックしてください。

これが役に立ちます。

+0

答えをありがとう、私はあなたが言ったようにそれをやってみました、それは私が使った古い方法ほど遅く動作します... – shon

+0

何が遅いですか?データを取得していますか?画像を開く?アプリケーションにデータを表示していますか? –

関連する問題