OnDisconnect class

onDisconnect类允许您在客户端与数据库服务器断开连接时写入或清除数据。无论您的客户端是否完全断开连接,这些更新都会发生,因此即使连接断开或客户端崩溃,您也可以依靠它们来清理数据。

onDisconnect类最常用于管理应用程序中的状态,可用于检测连接的客户端数量以及其他客户端何时断开连接。有关详细信息,请参阅在 JavaScript 中启用离线功能

为了避免在请求传输到数据库服务器之前连接断开时出现问题,应在写入任何数据之前调用这些函数。

请注意, onDisconnect操作仅触发一次。如果您希望每次断开连接时都执行一个操作,则需要在每次重新连接时重新建立onDisconnect操作。

签名:

export declare class OnDisconnect 

方法

方法修饰符描述
取消()取消此位置和所有子级的所有先前排队的onDisconnect()设置或更新事件。如果在父位置通过set()update()对此位置的写入进行排队,则该位置的写入将被取消,但仍会发生对同级位置的写入。
消除()确保当客户端断开连接(由于关闭浏览器、导航到新页面或网络问题)时删除此位置的数据。
设定值)确保当客户端断开连接(由于关闭浏览器、导航到新页面或网络问题)时,此位置的数据设置为指定值。 set()对于实现“存在”系统特别有用,其中当用户断开连接时应更改或清除值,以便他们对其他用户显示为“离线”。有关详细信息,请参阅在 JavaScript 中启用离线功能请注意, onDisconnect操作仅触发一次。如果您希望每次断开连接时都执行一个操作,则每次都需要重新建立onDisconnect操作。
setWithPriority(值,优先级)确保当客户端断开连接(由于关闭浏览器、导航到新页面或网络问题)时,此位置的数据设置为指定的值和优先级。
更新(值)当客户端断开连接时(由于关闭浏览器、导航到新页面或网络问题),在此位置写入多个值。 values参数包含多个属性-值对,这些属性-值对将一起写入数据库。每个子属性可以是简单属性(例如“name”),也可以是从当前位置到要更新的数据的相对路径(例如“name/first”)。set()方法相反, update()可用于有选择地仅更新当前位置处引用的属性(而不是替换当前位置处的所有子属性)。

OnDisconnect.cancel()

取消此位置和所有子级的所有先前排队的onDisconnect()设置或更新事件。

如果在父位置通过set()update()对此位置的写入进行排队,则该位置的写入将被取消,但仍会发生对同级位置的写入。

签名:

cancel(): Promise<void>;

返回:

承诺<无效>

当与服务器的同步完成时解决。

OnDisconnect.remove()

确保当客户端断开连接(由于关闭浏览器、导航到新页面或网络问题)时删除此位置的数据。

签名:

remove(): Promise<void>;

返回:

承诺<无效>

当与服务器的同步完成时解决。

OnDisconnect.set()

确保当客户端断开连接(由于关闭浏览器、导航到新页面或网络问题)时,此位置的数据设置为指定值。

set()对于实现“存在”系统特别有用,其中当用户断开连接时应更改或清除值,以便他们对其他用户显示为“离线”。有关详细信息,请参阅在 JavaScript 中启用离线功能

请注意, onDisconnect操作仅触发一次。如果您希望每次断开连接时都执行一个操作,则每次都需要重新建立onDisconnect操作。

签名:

set(value: unknown): Promise<void>;

参数

范围类型描述
价值未知断开连接时要写入此位置的值(可以是对象、数组、字符串、数字、布尔值或 null)。

返回:

承诺<无效>

当与数据库的同步完成时解决。

OnDisconnect.setWithPriority()

确保当客户端断开连接(由于关闭浏览器、导航到新页面或网络问题)时,此位置的数据设置为指定的值和优先级。

签名:

setWithPriority(value: unknown, priority: number | string | null): Promise<void>;

参数

范围类型描述
价值未知断开连接时要写入此位置的值(可以是对象、数组、字符串、数字、布尔值或 null)。
优先事项数量 |字符串|无效的要写入的优先级(字符串、数字或空)。

返回:

承诺<无效>

当与数据库的同步完成时解决。

OnDisconnect.update()

当客户端断开连接时(由于关闭浏览器、导航到新页面或网络问题),在此位置写入多个值。

values参数包含多个属性-值对,这些属性-值对将一起写入数据库。每个子属性可以是简单属性(例如“name”),也可以是从当前位置到要更新的数据的相对路径(例如“name/first”)。

set()方法相反, update()可用于有选择地仅更新当前位置处引用的属性(而不是替换当前位置处的所有子属性)。

签名:

update(values: object): Promise<void>;

参数

范围类型描述
价值观目的包含多个值的对象。

返回:

承诺<无效>

当与数据库的同步完成时解决。