web-dev-qa-db-ja.com

firebaseリアルタイムデータベースから削除する方法は?

AndroidアプリでFirebaseリアルタイムデータベースを使用していますが、次のようなデータがあります。 enter image description here

「Apple」レコードを削除するにはどうすればよいですか(図でマーク)?

ドキュメントによると、参照でremoveValue()を呼び出すアイテムを削除します。しかし、参照を取得するには、子idが必要です。ランダムに生成されたID(-KISNx87aYigsH3ILp0D)であるため、削除する方法は?

32
Amit Jayant

削除するアイテムのキーがわからない場合は、まずデータベースを照会してそれらのキーを決定する必要があります。

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

これは私の問題を解決しました

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

データを削除する方法と理由に応じて、以下を使用できます。

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

Firebase-adminを使用している場合は、次のように試すことができます。

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

そしてそれは私のために働く。

また、asyncおよびawait構文を使用することも忘れないでください。

1
Debdut Saha

このコードを使用できます:

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