1

私の Firebase Array の構造は次のとおりです。

[
   {
  'userId': '12345',
  'itemOrdered' : 'abc',
  'status': 'pending'
   ...other attributes
   },
  {
  'userId': '6789',
  'itemOrdered' : 'def',
  'status' : 'pending',
   ...other attributes
   },
  {
  'userId': '12345',
  'itemOrdered' : 'def',
  'status' : 'complete',
   ...other attributes
   },

]  

次のデータを取得する方法がわかりません。

  1. userId = xxx のレコードを取得
  2. 'itemOrdered" = 'def' であるすべてのレコードを取得します

Firebase のドキュメントでは orderByChild の使用について説明していますが、あまり意味がありません。

4

2 に答える 2

2

JavaScript SDK を使用して Firebase にアクセスしているとします。

  1. ref.orderByChild('userId').equalTo('xxx')

  2. ref.orderByChild('itemOrdered').equalTo('def')

defuser から項目の順序を取得するクエリを作成しようとしている場合xxx、現在、Firebase のクエリではそれができません。複数のプロパティの値をクエリする唯一の方法は、必要なクエリを実行できるようにそれらを 1 つのプロパティに結合することです。例えば

  1. ref.orderByChild('userId_itemOrdered').equalTo('xxx_def')
于 2015-06-22T17:40:13.800 に答える
0

プラットフォームによっては、追加のオプションがあります。

1) Query for the userId and then filter in code for the item you are looking for. 

2) Query for the userId and build another query based on those results.

3) Flatten your data!

例: user_purchases というノードを作成し、各子ノードをユーザーが購入した itemId を持つ userId ノードにすることができます (これにより、ユーザーが購入したアイテムを正確に知ることができます)。または、各子がアイテム番号ノードである items_purchased ノードを作成し、そのアイテムを購入したユーザー ID を関連付けます。

于 2015-06-22T21:01:47.160 に答える