Firebase子子被删除

时间:2017-01-02 08:01:53

标签: javascript node.js firebase firebase-realtime-database

如果移除了子孙,有没有办法获得。 db结构是:

users:{
  a: {
    friends: {
      b:Jhon,
      c:Ted
  },
  b: { 
    friends: {
      a: Tom
    }
  },
  c: {
    friends:{
      a: Tom
    }
  }
}

我希望在任何人从朋友那里移除任何孩子时获得活动。 将事件附加到每个用户不是一个好方法。
我正在尝试node.js admin

1 个答案:

答案 0 :(得分:0)

这是另一种方法,您可以为"朋友删除请求"创建一个特殊节点,这样客户端只会写入此节点,然后服务器会处理删除。

首先,看看这个数据库结构

{
    users: {
        a: {
            friends: {
                b:Jhon,
                c:Ted
            },
        }
        b: { 
            friends: {
                a: Tom
            }
        },
        c: {
            friends:{
                a: Tom
            }
        }
    }
    friend_removal_request : {
        <push_id>: {
            first_user: a,
            second_user: b
        }
    }
}
  • 服务器将child_added监听器附加到friend_removal_request
  • 如果用户想要删除他们的朋友,他们的客户会将新条目(使用DatabaseReference.push()方法)写入friend_removal_requestfirst_user是用户的ID,second_user是他们的朋友ID
  • 然后服务器上的监听器将被解雇,服务器现在可以通过将null值(或呼叫remove())设置为/users/$first_user/friends/$second_user并{{1}来继续删除他们的友谊}}
  • 删除友谊后,服务器会删除该请求/users/$second_user_user/friends/$first_user

现在,侦听器仅附加到节点。

这是我的想法,如果您对此方法有另一个顾虑,请告诉我。 希望这会有所帮助:)