web-dev-qa-db-fra.com

Comment supprimer de la base de données en temps réel firebase?

J'utilise la base de données temps réel de Firebase dans Android app et j'ai des données comme celle-ci: enter image description here

Comment puis-je supprimer l'enregistrement "Apple" (marqué dans l'image)?

Selon la documentation, pour supprimer un élément, vous appelez removeValue () sur la référence. Mais pour obtenir la référence, j'ai besoin de l'enfant id . Parce que c'est un identifiant généré de manière aléatoire ( KISNx87aYigsH3ILp0D), comment le supprimer?

32
Amit Jayant

Si vous ne connaissez pas la clé des éléments à supprimer, vous devez d'abord interroger la base de données pour déterminer ces clés:

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

cela a résolu mon problème

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

Selon comment et pourquoi vous supprimez les données, vous pouvez utiliser celles-ci:

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

2
theblindprophet

Si vous utilisez firebase-admin, vous pouvez simplement essayer ceci en tant que

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

et cela fonctionne pour moi.

Et n'oubliez pas d'utiliser la syntaxe async et await.

1
Debdut Saha

Vous pouvez utiliser ce code:

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