2017-04-16 5 views
0

私は、各メッセージが格納されている子の「メッセージ」からなるFirebaseデータベースを持っています。特定のデータを抽出する方法は?

私は、senderIDまたはReceiverIDがアプリのsenderIDまたはReceiver IDと等しい値を取得するだけです。この方法で私はユーザーごとのメッセージを並べ替えることができます。

しかし、私はこのアプリケーションをローカルで、またはFirebaseからクエリを使って行うことについてはわかりません。それが可能ならば?

This is the Database

+0

[Firebaseクエリを使用してフィルタリングする](https://firebase.google.com/docs/database/ios/lists-of-data#sorting_and_filtering_data)が可能です。しかし、あなたは* 1つの* senderID *または* receiverIDのように、単一のプロパティでのみフィルタリングできます。チャットルームを構築しているようですが、その場合は[私の答えはこちら](http://stackoverflow.com/q/33540479)のようにデータをモデル化します。 [NoSQLデータモデリング](https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/)と[Firebase for SQL開発者](https://www.youtube)を読むことをお勧めします。 .com/playlist?list = PL-K7zZEsYLlP-k-RKFa7RyNPa9_wCH2s) –

+0

基本的に、送信者も受信者であるすべてのメッセージを取得したいと思っていますか?その場合は、データを取得した後に行うことをお勧めします。 –

+0

他の方法では、ユーザーごとにメッセージをグループ化する必要があります。 UserA SenderとUserB Receiverのように、これらのメッセージをグループ化して、送信者AとBだけが利用できるようにします。 –

答えて

0

Firebaseを欠いており、製品はデータベースではありませんので、それは彼らの問題ではありません場所です。それはちょうどjsonファイルです。次のように私はこれにアプローチする方法を は次のとおりです。あなたもそれを照会せずに子供にアクセスすることができた

Messages 
    |- receiverID 
     |- senderID 
      |- The rest of your dictionary 

child('Messages').child(receiverID).child(senderID).observe value etc. 

私はそれが醜いと知っていますが、それは実用的な解決策です。それが役に立てば幸い!

+0

ありがとう@SahandTheGreat、 –

+0

しかしこれによって、送信者だけが受信者ではなくメッセージを観察します。それで、同じメッセージを受信者ノードにコピーする必要があります。 –

+0

私はあなたが子供の下で変化を聞くことができると思います。たとえば、受信者は新しい送信者を待って自分の子供を聴いている可能性があります。新しいメッセージがある場合は、新しい送信者の子が追加されます。今、新しいメッセージを見つけることができます。受信者が変更されたときに聴くこともできます。同じ送信者が新しいメッセージを送信した場合は、そのメッセージを見つけることができます。 – SahandTheGreat

関連する問題