2017-02-12 17 views
1

私はFirebaseRecyclerAdapterを使って投稿を表示しています。しかし、私はすべての投稿を表示したくありません。私は、現在のユーザーの友人によって投稿された投稿を表示したいだけです。Firebase Android:現在のユーザーの友達から投稿を取得する

enter image description here

、すべてのポストは次のように、それを投稿したユーザーのUIDと保存されています:リアルタイムデータベースで 現在のユーザーの友人は、このように保存されているので、

enter image description here

現在のユーザーの友だちだけから投稿を取得する効率的な方法は何でしょうか。

答えて

1

ソリューションを使用することですFirebaseRecyclerAdapterではなくFirebaseIndexRecyclerAdapterを使用します。 リンク:ステップバイhttps://github.com/firebase/FirebaseUI-Android/blob/master/database/README.md#using-firebaseui-with-indexed-data

ステップ:

まず - > "My_Challenges" としましょうノード内のすべてのユーザーのポストを維持する:ユーザーが何かを投稿するたび enter image description here

だから、そのコピーこのノード内のユーザーIDの下にも投稿IDがあります。 enter image description here

ユーザー1(1014382358695053)を言ってみましょう: -

第二>あなたが見ることができます記事のために別のノードを維持するには、(私の場合、私は私の友人の投稿を見てみたい)「timelineIndexは」言わせてユーザー2(10207254337991322)は友人です。したがって、すべての投稿IDをからMy_Challenges(ユーザ1)までtimelineIndex(ユーザ2)にコピーしてください。 (NOTE:あなたは新しいポストIDは、あなたのuidの下に来るたびにtimelineIndex下uidをあなたの友人にそれをコピーし、これをしなければならない)

最後に - >使用FirebaseIndexRecyclerAdapter:与えられたリンク以上のように 、 use

keyRef = databaseReference.child( "timelineIndex")。子(mUserId)。

dataRef = databaseReference.child( "ブログ");

これだけです。私はそれが助けて欲しい

0

投稿が表示されないようにするには、の認証の方法を使用する必要があります。この方法の記事は、ログインしている人たちです見ることができる唯一の人が、この前の質問で述べたように、1つのメッセージに Firebase 1が直接サポートされていません:この問題の

How to send one to one message using Firebase Messaging

+0

すべてのユーザーは、認証後にのみアプリを使用できます。どうすれば友人の投稿だけを見るのを制限できますか? –

+0

私は、Gmailのログイン以外の追加の認証について、サーバーに固有のユーザー名とパスワードなどを話しています。 – JordanH

+0

私はあなたが私を得ていないと思います。私はFacebookのことについて少し話しています。私の友人が何かを投稿すると、私のタイムラインに来るはずです。事実それはその友人のタイムラインのすべてに来なければならない。あなたが何かを投稿し、あなたが私の友人でないなら、私は私のタイムラインであなたの投稿を取得しません。それはFacebookのようなものです。 –

関連する問題