1

Ich möchte den Post des Beitrags des Benutzers jemand ID folgen. Ich verwende FirebaseRecyclerAdapter, um Posts zu erhalten.Firebase erhalten Beitrag des folgenden Benutzers nur

meine Datenbank-ID-Struktur ist als unten json

"Allposts" : { 

"-LnDkoPgr0fPAUSnackF" : { 
    "author" : "jack", 
    "postimage" : "posturl", 
    "profile" : "profileurl", 
    "uid" : "8WZ6jPIvVuNUEjR1G1ewEPpr2Ln2" 
}, 
"-Lnll3vNF8wABv899SoQ" : { 
    "author" : "merry", 
    "postimage" : "posturl", 
    "profile" : "profileurl", 
    "uid" : "KOag2Br7MOaJqJNSFbcTD3ljEnh2" 
} 

"Users" : { 
    "8WZ6jPIvVuNUEjR1G1ewEPpr2Ln2" : { 
     "following" : { 
     "KOag2Br7MOaJqJNSFbcTD3ljEnh2" : true 
     }, 
     "name" : "username", 
     "posts" : { 
     "-KnDkoPdke4p4Ns8NUkR" : true 
     }, 

     "profilepic" : "profileurl", 
     "userName" : "username" 
    }, 
    "KOag2Br7MOaJqJNSFbcTD3ljEnh2" : { 

     "following" : { 
     "8WZ6jPIvVuNUEjR1G1ewEPpr2Ln2" : true, 
     "KOag2Br7MOaJqJNSFbcTD3ljEnh2" : true 
     }, 
     "name" : "name", 
     "posts" : { 
     "-KnDl3vFUlSxyRm0z547" : true 
     }, 
     "profilepic" : "profileurl", 
     "userName" : "username" 
    } 
    }, 

"UsersPost" : { 
    "8WZ6jPIvVuNUEjR1G1ewEPpr2Ln2" : { 
     "-KnDkoPdke4p4Ns8NUkR" : { 
     "author" : "jack", 
     "full_url" : "posturl", 
     "profile" : "profileurl", 
     "uid" : "8WZ6jPIvVuNUEjR1G1ewEPpr2Ln2" 
     } 
    }, 
    "KOag2Br7MOaJqJNSFbcTD3ljEnh2" : { 
     "-KnDl3vFUlSxyRm0z547" : { 
     "author" : "marry", 
     "full_url" : "posturl", 
     "profile" : profileurl", 
     "uid" : "KOag2Br7MOaJqJNSFbcTD3ljEnh2" 
     } 
    } 
    }, 

},

ich folgende Methode verwenden folgende Beiträge

mFollowing = FirebaseDatabase.getInstance().getReference().child("Users").child(currentUser).child("following"); 
mDatabase = FirebaseDatabase.getInstance().getReference().child("UsersPost"); 

protected void onStart() { 
     super.onStart(); 

     mFollowing.addValueEventListener(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 

       for(DataSnapshot following : dataSnapshot.getChildren()){ 

        DatabaseReference ref = mDatabase.child(following.getKey()); 
        mAdapter = new FirebaseRecyclerAdapter<Post, PostViewHolder>(Post.class, 
          R.layout.post_item,PostViewHolder.class,ref) { 
         @Override 
         protected void populateViewHolder(PostViewHolder viewHolder, Post model, int position) { 
          viewHolder.bindToPost(model); 
         } 
        }; 
        mRecyclerView.setAdapter(mAdapter); 
       } 

      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 
    } 

} 

Aber es zeigt den Posten des letzten Benutzers zu erhalten nur:

Users { 
    following { 
     userid (1) 
     userid (2) 
     userid (3) 
    } 
} 

Nur Post von uid 3 wird angezeigt post von uid 1 & 2 werden nicht angezeigt

was könnte getan werden, um Post aller Benutzer unter folgenden Knoten zu zeigen?

+0

Jeder bitte geben Antwort ... –

Antwort

0

Sie müssen mRecyclerView.setAdapter(mAdapter); aus der for loop heraus und setzen Sie es, nachdem die for-Schleife endet.

Ich hoffe, es hilft.

+0

Ich habe es aber immer noch nicht funktioniert haben Sie eine andere Idee, nur Post von Benutzer folgen? –

+0

Keine Antwort von irgendeinem Entwickler? –

+0

Dies ist eine Frage, die von keinem Experten beantwortet wird. –

Verwandte Themen