我必须在一天内维护maxCountOfConcurrent用户。 为此,我想添加一个交易,
目前我使用类似的东西从在线用户中删除用户名
rootScope.userPresenceRef.onDisconnect().remove();
是否有可能有这样的东西
rootScope.userPresenceRef.onDisconnect().transaction(function(count) {});
答案 0 :(得分:5)
当onDisconnect()
处理程序检测到客户端已断开连接时,它将作为服务器上的单个写入操作实现。此时服务器无法再与客户端通信,因此写操作必须完全由可以在onDisconnect()
处理程序注册时确定的数据组成。
由于Firebase中的事务需要客户端和服务器之间的通信,因此无法在断开连接时运行事务。您将不得不找到一种对数据建模的方法,而不需要将其作为事务。
答案 1 :(得分:0)
您可以使用功能
将您的数据结构化为
usersData - > uid - >状态 - 在线/离线
收听功能
如果更改 - >在线(转换为增加计数以减少计数)