2016-05-23 94 views
16

我使用火力地堡實時數據庫在Android應用程序,並且有數據是這樣的: enter image description here如何從firebase實時數據庫中刪除?

如何刪除記錄「蘋果」(標記爲圖片)?

根據文檔,刪除您調用的項目removeValue()上的參考。但要獲得參考,我需要孩子ID。由於其隨機生成的ID(-KISNx87aYigsH3ILp0D),如何刪除它?

+0

感謝詢問和回答#Amit&@Frank van Puffelen –

回答

33

如果你不知道該項目的鍵刪除,你首先需要查詢數據庫,以確定這些按鍵:

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

非常感謝。這正是我期待的。 –

+0

爲什麼我找不到'DatabaseReference'? –

+0

如果有多個標題爲「Apple」的節點,該怎麼辦? –

1

根據您如何以及爲什麼刪除數據,你可以使用這些:

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

對不起,投入到應答部分,但是我有一個類似的問題,如果什麼,比如[-KISNx87aYigsH3ILp0D],我是數據庫的節點而不是firebase-test的子節點,我想刪除現在的「apple」,我該怎麼做。由於我不知道子節點名稱因爲它是動態創建的,但我想從數據庫中刪除一些特定的條目。

+0

這並沒有提供一個問題的答案。你可以[搜索類似的問題](// stackoverflow.com/search),或者參考頁面右側的相關和鏈接問題來找到答案。如果你有一個相關但不同的問題,請[提出一個新問題](// stackoverflow.com/questions/ask),幷包含一個鏈接來幫助提供上下文。請參閱:[提問,獲得答案,沒有分心](// stackoverflow.com/tour) – FelixSFD