firebase是否可以在disconnect()上更新事务

时间:2016-08-17 19:14:24

标签: javascript firebase firebase-realtime-database

我必须在一天内维护maxCountOfConcurrent用户。 为此,我想添加一个交易,

目前我使用类似的东西从在线用户中删除用户名

rootScope.userPresenceRef.onDisconnect().remove();

是否有可能有这样的东西

 rootScope.userPresenceRef.onDisconnect().transaction(function(count) {});

2 个答案:

答案 0 :(得分:5)

onDisconnect()处理程序检测到客户端已断开连接时,它将作为服务器上的单个写入操作实现。此时服务器无法再与客户端通信,因此写操作必须完全由可以在onDisconnect()处理程序注册时确定的数据组成。

由于Firebase中的事务需要客户端和服务器之间的通信,因此无法在断开连接时运行事务。您将不得不找到一种对数据建模的方法,而不需要将其作为事务。

答案 1 :(得分:0)

您可以使用功能

  1. 将您的数据结构化为

    usersData - > uid - >状态 - 在线/离线

  2. 收听功能

  3. 中状态的更新更新
  4. 如果更改 - >在线(转换为增加计数以减少计数)