2017-12-30 7 views
0

Ich versuche, einen einzelnen Knoten in meiner Firebase-Datenbank zu aktualisieren, aber meine Methode fügt zwei Knoten einen mit den Mischungen und einen mit nur einem Titel. Wie kann ich nur das Playlist-Kind aktualisieren?Firebase Update alle Kinder des Knotens

public void addToExistingPlaylist(String title) { 
    Query playlistQuery = mDatabase.child("playlists/" + FirebaseAuth.getInstance().getCurrentUser().getUid()).orderByChild("playlistTitle").equalTo(title); 
    playlistQuery.addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 

      for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) { 
       Playlist playlist = childSnapshot.getValue(Playlist.class); 
       ArrayList<Mix> mixes = new ArrayList<Mix>(); 
       if (playlist.getMixes() != null) { 
        mixes = playlist.getMixes(); 
       } 
       mixes.add(((MusicDetailFragment)mDashboardDetailFragment).mSelectedTrack); 
       playlist.setMixes(mixes); 

       DatabaseReference playlistRef = mDatabase.child("playlists/" + FirebaseAuth.getInstance().getCurrentUser().getUid()); //save this mix under mixes --> userUid -- new song 

       playlistRef.push().setValue(playlist).addOnCompleteListener(new OnCompleteListener<Void>() { 
        @Override 
        public void onComplete(@NonNull Task<Void> task) { 
         if (task.isSuccessful()) { 
          Snackbar newPlayListAddedSnack; 
          newPlayListAddedSnack = Snackbar.make(mCoordinatorLayout, getString(R.string.song_added_to_existing_playlist), Snackbar.LENGTH_LONG); 
          newPlayListAddedSnack.show(); 
         } else { 
          Snackbar errorSnack; 
          errorSnack = Snackbar.make(mCoordinatorLayout, getString(R.string.error_processing_request), Snackbar.LENGTH_LONG); 
          errorSnack.show(); 
         } 
        } 
       }); 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 
    alert.dismiss(); 
} 

enter image description here

Antwort

0

Remove push(). Ihr Code sollte wie folgt aussehen:

playlistRef.setValue(playlist).addOnCompleteListener(new OnCompleteListener<Void>() { 
... 
Verwandte Themen