2016-03-18 81 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); –