2016-12-11 11 views
0

Ich mache eine Post-App mit Firebase Realtime Database.Wie bestimmte Knoten in Firebase Realtime Database abgerufen werden?

Die App benötigt eine Lesezeichen-Funktion, aber ich weiß nicht, wie Sie den markierten (ausgewählten) Beitrag laden.

Datenbankstruktur:

enter image description here

Code:

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

aber dieser Code nicht funktioniert. Warum funktioniert es nicht? Ich denke, dass es nur bookmarkUsers Kindknoten zurückgibt.

Muss ich einen anderen Knoten nur für Lesezeichen erstellen?

Ich habe bereits einen Knoten nur für Lesezeichen, aber ich konnte bookmardCount und starCount Synchronisation nicht verwalten.

Danke!

Antwort

0

Muss ich einen anderen Knoten nur für Lesezeichen erstellen?

Ja, das tust du. Weitere Informationen erhalten Sie in der Struktur Ihrer Daten in Firebase here.

Ich habe bereits einen Knoten nur für Lesezeichen, aber ich konnte nicht BookMardCount und StarCount Synchronisation verwalten.

Sie die bookmarkCount und starCount innerhalb des Post-Knoten selbst halten müssen.

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) { 

             } 
            }); 
Verwandte Themen