如何删除Firebase中列表中推送的数据?

如何删除Firebase中列表中推送的数据?,firebase,Firebase,给定 以后如何从Firebase中删除添加的数据?有没有一个干净简单的方法可以做到这一点 我希望以后能够再次找到该数据,然后将其删除,假设我不知道生成的唯一id,我无法执行newfirebase('https://SampleChat.firebaseIO-demo.com/message_list/“+uniqueId).remove()(我不知道这是否是一个好的做法)。在我的想法中,我会首先查询数据,但我不知道如何使用数据列表来查询。例如,我希望能够在Disconnect上删除该数据 在这一

给定

以后如何从Firebase中删除添加的数据?有没有一个干净简单的方法可以做到这一点

我希望以后能够再次找到该数据,然后将其删除,假设我不知道生成的唯一id,我无法执行
newfirebase('https://SampleChat.firebaseIO-demo.com/message_list/“+uniqueId).remove()
(我不知道这是否是一个好的做法)。在我的想法中,我会首先查询数据,但我不知道如何使用数据列表来查询。例如,我希望能够在Disconnect上删除该数据


在这一页上,似乎还没有写“查看数据列表”。是否在路线图中为数据列表添加这样的删除功能?

因此,找出要删除的消息是关键。但假设您想按用户id删除;当Fred断开连接时,您可能希望删除他的所有消息。您可以按如下方式查找和删除它们:

var messageListRef = new Firebase('https://SampleChat.firebaseIO-demo.com/message_list');
    messageListRef.push({ 'user_id': 'fred', 'text': 'Yabba Dabba Doo!' });

调用
push
时,它将返回新节点。因此,您可以在内存中保留用户添加的消息列表:

var query = messageListRef.orderByChild('user_id').equalTo('Fred');

query.once('child_added', function(snapshot) {
    snapshot.forEach( function(msg) {
        msg.ref().remove();
    });
});
然后,无论何时添加消息:

var myMessageKeys = []; // put this somewhere "globally"
就我个人而言,这让我感到不舒服。我更喜欢使用查询,例如,如果fred断开连接,您可以执行以下操作:

var newMessageRef = messageListRef.push({ 'user_id': 'fred', 'text': 'Yabba Dabba Doo!' });
myMessageKeys.push(newMessageRef.key());

请参阅数据列表,这些数据可能指向
var myMessages = messageListRef.orderByChild('user_id').equalTo('fred');
myMessages.on('value', function(messagesSnapshot) {
    messagesSnapshot.forEach(function(messageSnapshot) {
        messageSnapshot.ref().remove();
    });
});