2017-03-29 18 views
0

各ユーザーは、アレイ内のいくつかの専門家を持っていますオブジェクトの配列プロパティを並べ替えてリストする方法は?

users idxxx 
      -A 
      -prof: name: x 
        name: y 
     idyyy 
      -B 
      -prof: name :y 
        name :z 
        name :x 

名前順で教授アレイリストをソートする方法。
何かのように:

prof list: 
x (2)    
y (2)    
z (1) 
+0

質問に記載されている構造は無効です。ノード内に重複した名前のキーを持つことはできません - 異なるものであっても、順番に番号が付けられていなければ配列ではないので言います。このメモでは、Firebaseアレイを注文またはソートすることはできません。それは1つの「事物」であり、要素は個別にアクセスすることはできません。代わりに私の答えを見てください。 – Jay

答えて

1

あなたは、つまりは、新しいユーザーを作成するときに、対応する専門職(S)の数をインクリメントするデータベース内の専用余分な「proflist」ノードを作成し、あなたのデータモデルを非正規化する必要があります。

実際には、問題を説明した方法に対応しています。

より良い、より良い、代替構造が問題を軽減しますここhttps://firebase.google.com/docs/database/web/read-and-write#save_data_as_transactions

1

説明するようにトランザクションを使用しています。

user_01 
    -name: A 
    -professors 
    -YUik99j9s 
     name: "prof name 0" 
    -YJ89jk9sk 
     name: "prof name 1" 

、ノードに教授子キー(-YUik99j9sと-YJ89jk9sk)はプッシュを使用して作成されていること

ref = "user_01/professors" 

orderBy:("name") 

注(読み取り)またはchildByAutoIdに応じてプラットフォーム。

関連する問題