2016-11-18 14 views
1

Firebaseで世界のモデルの人々を作りようとしています。これはどこかに私がこのFirebase JSONのように500件のmiljon +レコードを配置する必要があることを意味しますFirebaseを検索するにはどうすればいいですか?

私はこのような1 USERを検索したい
 "USER" : { 
     "HnhLyXRxUINmlltKOfxx2QBYiQ53" : { // FireBase user ids 
      "FRIENDLYS" : { 
      "-KWrFrMx1yQe0jhyA7HP" : { // Push ids 
       "animal" : "dog" 
      }, 
      "-KWrG7EsLkZvASjpcW3A" : { 
       "animal" : "cat" 
      }, 
      "-KWrG9hbQxrZwdfjqbuQ" : { 
       "animal" : "horse" 
      } 
      }, 
      "email" : "[email protected]", 
      "lastName" : "Doe", 
      "firstName" : "John", 
      "googleId" : "10086464927329323e2326" 
     }, 
     "HnhLyXHKJH67677GJKMnbBYiQ53" : { // FireBase user ids 
      "FRIENDLYS" : { 
      "-KWrFrMdjnjs982s7HP" : { // Push ids 
       "animal" : "ant" 
      .... 

     } 

firebase.child("USER/HnhLyXRxUINmlltKOfxx2QBYiQ53").addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot snapshot) { 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 

    } 
}); 

これはとの良好なアプローチである場合の質問です特に、私のように検索するときに、この "USER"オブジェクトを持っていることは実現可能ですか?

私は何を期待できますか?

答えて

2

あなたのコードはではありません。を検索してください。子ノードへの直接参照を作成していますが、その操作自体はパフォーマンスに影響しません。直接キーを検索することは常に高速です。したがって、ユーザー数がアプリケーションに悪影響を及ぼすことはありません。

ただし、「FRIENDLYS」[sic]をユーザーの下に格納すると縮尺されません。単一のユーザーノードへの読み込みは、余分な子が置かれるたびに遅くなります。それらを別々のルートノードの下に別々に格納し、実際に必要な場合にのみロードしてください。

リアルタイムデータベースガイドのStructure Your Dataセクションも参照してください。

関連する問題