How to delete from firebase realtime database?

AndroidFirebaseFirebase Realtime-Database

Android Problem Overview


I am using Firebase realtime database in Android app, and have data like this: enter image description here

How can i delete the record "Apple" (marked in picture)?

According to the docs, to remove an item you call removeValue() on the reference. But to get the reference i require the child id. Because its a random generated id (-KISNx87aYigsH3ILp0D), how to delete it?

Android Solutions


Solution 1 - Android

If you don't know the key of the items to remove, you will first need to query the database to determine those keys:

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());
    }
});

Solution 2 - Android

this solved my problem

 mPostReference = FirebaseDatabase.getInstance().getReference()
                        .child("quotes").child(mPostKey);
                mPostReference.removeValue();

Solution 3 - Android

If you are using firebase-admin you can simply try this out as

admin.ref(`/users/${userid}`).remove()

and that works for me.

And also do remember to use async and await syntax.

Solution 4 - Android

You can use this code :

onDeletePost(id:string){
return this.http.delete(`https://my-angular8-prjt.firebaseio.com/posts/${id}.json`).subscribe();
}

Solution 5 - Android

Depending on how and why you are deleting the data you can use these:

// 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

Solution 6 - Android

Assume that images is the directory of your firebase database which you want to clear.

private static DatabaseReference mDatabase;
public static void clearData(){
    mDatabase = FirebaseDatabase.getInstance().getReference();
    mDatabase.child("images").setValue(null);
}

Here images is the parent directory of the database. If you want to clear a nested directory (DCIM) inside the images directory so that you can retain the remaining data in it.

In that scenario you can do like this,

mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("images").child("DCIM").setValue(null);

As a response to the query, Please try to use setValue method with null value setValue(null) to clear the data from firebase database

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAmit JayantView Question on Stackoverflow
Solution 1 - AndroidFrank van PuffelenView Answer on Stackoverflow
Solution 2 - AndroidmasokayaView Answer on Stackoverflow
Solution 3 - AndroidDebdut SahaView Answer on Stackoverflow
Solution 4 - AndroidAmruta GoyalView Answer on Stackoverflow
Solution 5 - AndroidtheblindprophetView Answer on Stackoverflow
Solution 6 - AndroidCodemakerView Answer on Stackoverflow