2016-03-18 1 views
0

Wie kann ich verschobene Objekte mit einem bestimmten Wert entfernen? Ich habe einige Push-Elemente mit 2 Tasten: deviceToken und UserID. Ich muss Artikel mit dem spezifischen deviceToken entfernen.verschobenen Artikel aus Firebase entfernen

dev-app 
     push 
      asdasdasdasda(generated key) 
       deviceToken: 12345678 
       userID: qwerty 
      dgfgdfghhdfgd(generated key) 
       deviceToken: 87654321 
       userID: sdaerty 

    I need to remove the the 1-st one (which has a DeviceToken with value "12345678"). 
+0

Wie sieht Ihre Datenstruktur aus (bitte als Text hinzufügen, keine Screenshots)? Außerdem: Hast du schon etwas probiert? Firebase hat eine ziemlich gute [Dokumentation zur Abfrage] (https://www.firebase.com/docs/android/guide/retrieving-data.html#section-queries) und es gibt viele [Fragen zu Firebase Queries] (http: //stackoverflow.com/search?q=%5Bfirebase%5D+query) auch. –

+0

@FrankvanPuffelen Ich habe meine Frage bearbeitet - die Struktur ist höher. Können Sie mir bitte helfen?) – PerSpiKyliaTor

Antwort

3

Um die untergeordneten Elemente basierend auf deviceToken erhalten Sie eine Abfrage wie folgt ausführen:

Firebase ref = new Firebase("https://dev-app.firebaseio.com/push"); 
Query queryRef = ref.orderByChild("deviceToken").equalTo(12345678); 
queryRef.addChildEventListener(new ChildEventListener() { 
    @Override 
    public void onChildAdded(DataSnapshot snapshot, String previousChild) { 
    System.out.println(snapshot.getKey()); 
    } 
    // .... 
}); 

ich diesen Ausschnitt aus der Firebase documentation on queries nur kopiert und modifiziert es Ihnen Daten.

+0

Was ist mit der neuen Dokumentation? Könnten Sie ein Beispiel dafür geben, eine Referenz zu erhalten, sagen Sie /node/, so dass ich .RemoveValue() in einem ListView verwenden kann. Mein Problem ist, ich versuche, den richtigen gedrückten Schlüssel in der Liste zu greifen, so dass ich diesen Schlüssel unter/Nodes referenzieren und dann dieses einzelne Element anstelle der gesamten Knotenverweis löschen kann, was ist mDatabase.child ("Knoten") .removeValue() tut dies zur Zeit. Wenn ich etwas wie mDatabase.child ("nodes") möchte. Child (pushedKey) .removeValue(). Hast du Beispiele dafür? –

+0

Wenn ich Daten an Knoten senden, sieht es so aus. mDatabase.child ("Knoten"). Push(). SetValue (POJO); –