2016-12-11 15 views
0

私はFirebaseリアルタイムデータベースでポストアプリケーションを作っています。Firebase Realtime Databaseで特定のノードを取り出す方法は?

ブックマーク機能が必要ですが、ブックマークした(選択した)投稿を読み込む方法がわかりません。

データベースの構造:

enter image description here

コード:

databaseReference = databaseReference.child("post").child(getLen()).child("all-posts").child("-KYbMBatKdoWYw45-2pp").child("bookmarkUsers").orderByChild(myUserId).equalTo(myUserId); 

が、このコードは動作しません。それはなぜ機能しないのですか?私はそれがbookmarkUsers子ノードだけを返すと思います。

ブックマークのためだけに別のノードを作成する必要がありますか?

ブックマークのノードはすでに作成していますが、bookmardCountstarCountの同期を管理できませんでした。

ありがとうございます!

答えて

0

ブックマークのみ別のノードを作成する必要がありますか?

はい、そうです。より多くの情報を得るには、firebase hereのデータを構造化することについて読んでください。

ブックマークのノードはすでに作成していますが、bookmardCountとstarCountの同期を管理できませんでした。

投稿ノード自体にbookmarkCountstarCountを保存する必要があります。

1
DatabaseStorage Posts=FirebaseDatabase.getInstance().getReference().child("posts"); 

Posts.child("0").addValueEventListener(new ValueEventListener() { 
             @Override 
             public void onDataChange(DataSnapshot dataSnapshot) { 

       for(DataSnapshot DS: dataSnapshot) 
        { 
          //Get all other Values Except bookmarkusers and store them 

             String POST_NAME = dataSnapshot.getKey(); 
          Posts.child("0").child(POST_NAME)addValueEventListener(new ValueEventListener() { 
             @Override 
             public void onDataChange(DataSnapshot dataSnapshotf) { 


              for(DataSnapshot BOOK: dataSnapshotf) 
              { 
              //Collect all BookMarks and store them 
               } 

             } 

             @Override 
             public void onCancelled(DatabaseError databaseError) { 

             } 
            }); 
             } 

             @Override 
             public void onCancelled(DatabaseError databaseError) { 

             } 
            }); 
関連する問題