2017-03-12 3 views
1

Ich habe diese Datenbank Firebase (die Liste der push() Methode erstellt wurde):Android Firebase - einen einzelnen Wert aus einer Liste entfernen

enter image description here

ich nur „Platz 1“ entfernen möchten.

Ich hat versucht, den folgenden Code, aber es löscht die gesamten "Restaurants" Knoten ...

databaseReference.child("Restaurants").orderByValue().equalTo("Place 1") 
        .addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     dataSnapshot.getRef().setValue(null); 
    } 

    @Override 
     public void onCancelled(DatabaseError databaseError) { 
    } 
}); 

Wie entferne ich nur "Platz 1"?

Antwort

0

Sie verwenden databaseReference.child("Restaurant") als Basisreferenz. Bitte beachten Sie, dass orderByValue() die Referenz nicht ändert, filtern Sie nur die Werte. Kurz gesagt, dataSnapshot Objekt von onDataChange() produziert wird immer auf Ihre Referenz zeigen.

Sie sollten es tun, wie folgt:

... onDataChange(DataSnapshot dataSnapshot) { 
    // dataSnapshot object will point at "Restaurant" 
    for (DataSnapshot snapshot : dataSnapshot.getChildren()) { 
     // snapshot object is every child of "Restaurant" that match the filter 
     snapshot.getRef().setValue(null); 
    } 
} 

Hoffnung, das hilft.

0

versuchen Sie dies:

databaseReference.child("Restaurants").orderByValue().equalTo("Place 1") 
        .addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     dataSnapshot.getRef().removeValue(); //used this 
} 

    @Override 
     public void onCancelled(DatabaseError databaseError) { 
    } 
}); 
+0

Einstellung Wert auf Null ist das gleiche wie es zu entfernen ... –

Verwandte Themen