2016-03-18 82 views
0

如何刪除推送項目與特定值? 我有一些推送項目與2個鍵:deviceToken和UserID。 我需要刪除特定deviceToken的項目。從firebase中刪除推送項目

dev-app 
     push 
      asdasdasdasda(generated key) 
       deviceToken: 12345678 
       userID: qwerty 
      dgfgdfghhdfgd(generated key) 
       deviceToken: 87654321 
       userID: sdaerty 

    I need to remove the the 1-st one (which has a DeviceToken with value "12345678"). 
+0

你的數據結構是什麼樣的(把它添加爲文本請不要截圖)?另外:你有沒有嘗試過任何東西? Firebase具有相當不錯的[關於查詢的文檔](https://www.firebase.com/docs/android/guide/retrieving-data.html#section-queries),並且有很多[涉及Firebase查詢的問題](http: //stackoverflow.com/search?q=%5Bfirebase%5D+query)。 –

+0

@FrankvanPuffelen 我編輯了我的問題 - 結構更高。 你能幫助我嗎?) – PerSpiKyliaTor

回答

3

爲了得到孩子的項目基礎上deviceToken,您可以執行這樣的查詢:

Firebase ref = new Firebase("https://dev-app.firebaseio.com/push"); 
Query queryRef = ref.orderByChild("deviceToken").equalTo(12345678); 
queryRef.addChildEventListener(new ChildEventListener() { 
    @Override 
    public void onChildAdded(DataSnapshot snapshot, String previousChild) { 
    System.out.println(snapshot.getKey()); 
    } 
    // .... 
}); 

我只是複製這個片段來自Firebase documentation on queries,並修改爲您的數據。

+0

新文檔怎麼樣?你能否提供一個例子來說明/node/,以便我可以在列表視圖中使用.removeValue()。我的問題是,我試圖抓住列表中正確的按鍵,以便我可以在/節點下引用該鍵,然後刪除該單一項而不是整個節點引用,它是mDatabase.child(「節點」) .removeValue()目前沒有。當我想要像mDatabase.child(「節點」)。child(pressedKey).removeValue()。你有這樣的例子嗎? –

+0

當我發送數據到節點它看起來像這樣。 (「節點」)。push()。setValue(POJO); –