2016-11-12 11 views
0

複数のノードをカンマで区切ってFirebaseから取得することは可能ですか?Firebase:複数のノードを取得する

例えば、使用しているユーザーのnameimageプロパティを取得:

/users/$USER_ID/name,image

を代わりにあなたがクラスを使用してノードを取得することができ、すべてのユーザー情報

+1

2つのネットワークコールを使用する場合は、各ノードに子ノードを直接割り当てることができます。 – Linxy

答えて

1

Firebase SDKは、常にデータベースから完全なノードを取得します。ノードのサブセットを選択する方法はありません。

あなたはノードのサブセットをしたい見つけて、すべてのノードをダウンロードすることは、過度に無駄になることならば、あなたはあなただけ、各ユーザのためにあなたがしたいの特性を保つ追加のコレクションを持っているあなたのデータをモデル化する必要があります

user 
    uid1 
    name: "TheUnreal" 
    image: "https://graph.facebook.com/1214076718653094/picture?type=large" 
    stackid: 3669981 
    lastquestionid: 40565750 
    uid2 
    name: "Frank van Puffelen" 
    image: "https://www.gravatar.com/avatar/12d378e6a9788ab9c94bbafe242b82b4?s=48&d=identicon&r=PG" 
    stackid: 209103 
    lastquestionid: 39984247 
users_names_images 
    uid1 
    name: "TheUnreal" 
    image: "https://graph.facebook.com/1214076718653094/picture?type=large" 
    uid2 
    name: "Frank van Puffelen" 
    image: "https://www.gravatar.com/avatar/12d378e6a9788ab9c94bbafe242b82b4?s=48&d=identicon&r=PG" 

このデータ構造では、対応する最上位ノードに問い合わせることによって、データのサブセットまたは完全なデータを取得するかどうかを選択できます。このようなデータを複製することは、NoSQLデータベースではかなり一般的です.NoSQLデータベースでは、アプリがどのようにデータを消費するかをモデル化することがよくあります。

+0

それは私が考えた周りの唯一の方法ですが、ユーザーが自分のイメージや名前を更新するたびに、その2つのノードを更新するという欠点があります。私が望むノードを選ぶことができれば、余分なノードの必要はありませんでした。 Firebaseにフィーチャーリクエストを送信することを考えていましたが、データベース構造を別の方法で構築することをお勧めします – TheUnreal

+0

*開示:Firebase *で作業しています。[機能要求をファイルする](https://firebase.google.com/support/contact/bugs-features /)を参照してください。しかし、ある時点で実装することに決めたとしても、それは今日あなたを助けません。ファイアベースなどのNoSQLデータベースでは、データを複製することは完全に正常であり、拡張性が高い理由の一部です。 –

0

をダウンロードします。私はそれを好きです。戻り値を操作して、使用できるようにするのはなぜでしょうか。

関連する問題