Android 从firebase中移除推送的项目

Android 从firebase中移除推送的项目,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,如何删除具有特定值的推送项? 我有一些带有两个键的推送项:deviceToken和UserID。 我需要删除带有特定设备的项目OK dev-app push asdasdasdasda(generated key) deviceToken: 12345678 userID: qwerty dgfgdfghhdfgd(generated key)

如何删除具有特定值的推送项? 我有一些带有两个键的推送项:deviceToken和UserID。 我需要删除带有特定设备的项目OK

    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").

要基于
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());
  }
  // ....
});

我刚刚从中复制了此代码段并将其修改为您的数据。

要基于
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非常好,也有很多。@FrankvanPuffelen我编辑了我的问题-结构更高。你能帮我吗?)你的数据结构是什么样的(请将其添加为文本,不要截图)?还有:你已经试过什么了吗?Firebase非常好,也有很多。@FrankvanPuffelen我编辑了我的问题-结构更高。你能帮我吗?)那新的文档呢?您能否提供一个获取引用(例如/node/)的示例,以便我可以在listview中对其使用.removeValue()。我的问题是,我正在尝试获取列表中正确的按下键,以便在/nodes下引用该键,然后删除一个单一项,而不是整个节点引用,这是mDatabase.child(“nodes”).removeValue()当前所做的。当我需要类似于mDatabase.child(“节点”).child(pushedKey).removeValue()的内容时。你有这样的例子吗?当我向节点发送数据时,它看起来是这样的。mDatabase.child(“节点”).push().setValue(POJO);新文档怎么样?您能否提供一个获取引用(例如/node/)的示例,以便我可以在listview中对其使用.removeValue()。我的问题是,我正在尝试获取列表中正确的按下键,以便在/nodes下引用该键,然后删除一个单一项,而不是整个节点引用,这是mDatabase.child(“nodes”).removeValue()当前所做的。当我需要类似于mDatabase.child(“节点”).child(pushedKey).removeValue()的内容时。你有这样的例子吗?当我向节点发送数据时,它看起来是这样的。mDatabase.child(“节点”).push().setValue(POJO);