当Firebase服务器上的某个属性设置为特定值时,是否可以操作该对象?

当Firebase服务器上的某个属性设置为特定值时,是否可以操作该对象?,firebase,firebase-security,Firebase,Firebase Security,我有一种情况,我有两个客户端连接到同一个firebase节点,然后通过该通道来回通信。当客户端连接时,它创建clientXconnected属性并将其设置为true,当客户端断开连接时,它将其设置为false。当两个客户端都已连接时,它看起来有点像下面的结构 - fbnode-123-456 (this is a uuid that both clients know before connecting) - clientAconnected: true - clientBconne

我有一种情况,我有两个客户端连接到同一个firebase节点,然后通过该通道来回通信。当客户端连接时,它创建clientXconnected属性并将其设置为true,当客户端断开连接时,它将其设置为false。当两个客户端都已连接时,它看起来有点像下面的结构

- fbnode-123-456 (this is a uuid that both clients know before connecting)
   - clientAconnected: true
   - clientBconnected: true
现在我希望发生的是,当两个客户端都断开连接并且它们的连接值都设置为false时,包含节点(在上面的示例fbnode-123-456中)也会被删除

问题是,由于此时两个客户端都已断开连接,因此都无法删除该节点。有没有一种方法可以在服务器上设置一条规则,在写入/更新时检查这些值,并在两者都为false时删除节点,或者我没有想到的其他方法


我希望避免使用外部服务器应用程序来监视连接并执行删除操作。我的意思是,在这种情况下,我不能这样做。

我可以想出两种方法来实现这一点:

让最后一个要断开连接的客户端删除您希望在应用程序中删除的任何节点

与保留布尔值以指示客户端是否已连接不同,只存储已连接的客户端。因此:

fbnode-123-456
    connectedClients
      clientA
      clientB
当clientA和clientB节点都消失时,Firebase将自动清除连接的客户端和上面的fbnode-123-456节点(如果它们为空)