2016-04-28 3 views
0

マイfirebaseユーザツリーは、この構造を有しています。
私はこのコードを試してみてください。クエリデータ

var ref1 = new Firebase("https://event-application.firebaseio.com/users"); 
$scope.user = $firebaseArray(ref1.orderByChild("userpreferences").equalTo('Cinema')); 
console.log($scope.user); 

をしかし、私は最良の結果を得ることはありません。私はこのレコードを取得します: enter image description here

+1

*何* "私は最善の解決策を得ることはありません" とは? – Bigood

答えて

1

あなたのJSON構造はuserPreferencesとしてプリファレンスを表示するので、次のようなことはありませんか?私はあなたのコードを持つ別の問題もあると思いますが

var ref1 = new Firebase("https://event-application.firebaseio.com/users"); 
$scope.user = $firebaseArray(ref1.orderByChild("userPreferences").equalTo('Cinema')); 
console.log($scope.user); 

は、あなたは私が間違っているなら、私を修正し、あなたは配列にそれを比較しているが.equalTo('Cinema')呼ばれているが、私は行動とは思いません.equalTo('Cinema')はそれぞれの値をループして比較することですが、これはまったく単純な比較だと思います。

この場合、firebaseからデータを読み取り、それを操作してカスタムクエリを作成する必要があります関数をスナップショットに使用可能

+0

あなたの答えをありがとう。私は自分の投稿を編集しました。はい、私の問題でしたが、配列と.equalTo( 'Cinema')を比較する方法を見つけることができません。同じデータ構造を維持する必要があります –

+0

@SihemHcine firebaseからデータを読みたいですか? – Grant

+0

もちろん先生、私にあなたのメールをお願いします。 –

1

NoSQLでは、多くの場合、thを反映するデータモデルアプリケーションがデータを使用する方法。あなたは映画のための好みを持っているすべてのユーザを読みたい場合は、あなたのツリー内のことをモデル化する必要があります。

users: { 
    'uid-of-abc': { 
    'userName': 'abc', 
    'userEmail' : '[email protected]', 
    'userPreferences': [ 
     0:'Cinema', 
     1:'It' 
    ] 
    }, 
    'uid-of-def': { 
    'userName': 'def', 
    'userEmail' : '[email protected]', 
    'userPreferences': [ 
     0:'Cinema', 
     1:'Music' 
    ] 
    } 
}, 
"preferences-lookup": { 
    "Cinema": { 
    "uid-of-abc": true, 
    "uid-of-def": true 
    }, 
    "It": { 
    "uid-of-abc": true 
    }, 
    "Music": { 
    "uid-of-def": true 
    } 
} 

今、あなたは、ユーザーがで映画を好む何かを見つけることができます。

ref.child('preferences-lookup/Cinema').on('value', function(snapshot) { 
    snapshot.forEach(function(userKey) { 
    console.log(userKey.key()+' prefers Cinema'); 
    }); 
}); 

これは、このblog post on denormalizing data with FirebaseFirebase documentation on structuring data、およびスタックオーバーフローの回答がここにあります。数:

+0

あなたのanwerさんにありがとうございました:)しかし、私のアプリケーション構造(コード)では、Cinemaの環境設定を定義していません。 –

関連する問題