2016-09-22 3 views
0

firebase 3.0を使用してクエリからリストを抽出するプロジェクトをビルドします。私はこれにはかなり新しいですが、私は私の質問に簡単な答えがあると想像しています。firebase 3.0 on query

私はこのような構造を持っている:基本的にユーザー(luke1)にログインし

requests : { 
     luke1 : { 
       1 : { 
        .../... 
        users : { 
           0 : { 
            username : joseph, 
            answered : 0 
            } 
           1 : { 
            username : mark, 
            answered : 1 
            } 
           } 
        } 
       } 
      } 

は、ユーザー(ジョセフ・マーク)の数にリクエストを送信し、私はユーザーとしてログインしています言うことができます:ジョセフ。 は、私は、クエリを書くことができる方法を知りたいまだ

var ref = firebase.database().ref("requests/"); 

答えないジョセフに送信されたリクエストの一覧を取得したいです。

これを読んでいただきありがとうございます。私の最後からさらに詳しい情報が必要な場合は、お知らせください。

答えて

0

この種のクエリを実行するには、ユーザーの現在のIDを変数に格納する必要があります。これを実行した後、すぐ隣のクエリのようなものを試してください:私が間違っていないよ場合

var ref = firebase.database().ref("request").child(currentUserId).child("users"); 

が、それはあなたがするクエリを返します。それがあなたを助けることを願っています!

0

Firebase(ほとんどのNoSQLデータベース)を使用すると、アプリケーションが消費するデータのモデリングが終了することがよくあります。

現在のデータモデルでは、で特定のユーザーがというリクエストを簡単に受け取ることができます。

ref.child("requests/luke1").on("child_added", ... 

しかし、あなたはまだ簡単にリクエストが特定のユーザにを送っ見つけることができません。簡単にそのデータを照会できるようにするには、データベースへの反転データ構造を追加することができます。

received: { 
    joseph: { 
     0: { 
      from: luke1 
      answered: 0 
     } 
    } 
} 

今すぐ簡単にヨセフの未解決の要求を取得することができます:

ref.child("received/joseph").orderByChild("answered").equalTo(0).on("child_added", ... 

あなたの最初の応答は、この可能性がありますデータの重複の種類が悪いです。しかし、実際にはNoSQLデータベースではかなり一般的です。

この構造をモデル化するにはさらに多くの方法があります。トピックの偉大な紹介については、私はNoSQL data modelingでこの記事をお勧めします。