2016-05-23 24 views
16

Używam Firebase bazy danych w czasie rzeczywistym w aplikacji na Androida i mieć dane tak: enter image description hereJak usunąć z bazy danych Firebase w czasie rzeczywistym?

Jak mogę usunąć zapis „Apple” (zaznaczone na zdjęciu)?

Zgodnie z dokumentami, aby usunąć element, który wywołuje się pod numerem removeValue() w pliku referencyjnym. Jednak, aby uzyskać odniesienia i wymagają dziecko id. Ponieważ jej losowy generowane id (-KISNx87aYigsH3ILp0D), jak go usunąć?

+0

dzięki zarówno dla zadawania i odpowiadania #Amit & @Frank van Puffelen –

Odpowiedz

33

Jeśli nie znasz klucza z pozycji usunąć, trzeba najpierw do zapytanie do bazy danych, aby określić te klucze:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); 
Query applesQuery = ref.child("firebase-test").orderByChild("title").equalTo("Apple"); 

applesQuery.addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     for (DataSnapshot appleSnapshot: dataSnapshot.getChildren()) { 
      appleSnapshot.getRef().removeValue(); 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 
     Log.e(TAG, "onCancelled", databaseError.toException()); 
    } 
}); 
+1

dzięki. Właśnie tego szukałem. –

+0

dlaczego nie mogę znaleźć 'DatabaseReference'? –

+0

co, jeśli jest wiele węzłów z tytułem "Apple"? –

1

W zależności od tego, jak i dlaczego usuwasz dane, można z nich korzystać:

// Could store the push key or get it after push 
String newPostKey = yourDatabase.child('firebase-test').push({ 
    something:something 
}).key(); 

// Depends how you get to here 
howYouGotHereId.parent().setValue(null); 

Firebase Save Data 3.0

-1

przepraszam za wprowadzenie do sekcji odpowiedzi, ale mam podobne pytanie, co jeśli, na przykład [-KISNx87aYigsH3ILp0D], i s jest węzłem bazy danych, a nie dzieckiem z testu firebase i chcę usunąć, na razie "jabłko", jak mogę to zrobić. Ponieważ nie znam nazwy węzła podrzędnego coz, jest on tworzony dynamicznie, ale chcę usunąć jakiś konkretny wpis z bazy danych.

+0

Nie zapewnia to odpowiedzi na pytanie. Możesz wyszukać podobne pytania (// stackoverflow.com/search) lub odnieść się do powiązanych i powiązanych pytań po prawej stronie, aby znaleźć odpowiedź. Jeśli masz powiązane, ale inne pytanie, [zadaj nowe pytanie] (// stackoverflow.com/questions/ask) i dołącz link do tego, aby pomóc zapewnić kontekst. Zobacz: [Zadawaj pytania, otrzymuj odpowiedzi, nie rozpraszaj] (// stackoverflow.com/tour) – FelixSFD

Powiązane problemy