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>;

參數

範圍類型描述
價值觀目的包含多個值的物件。

返回:

承諾<無效>

當與資料庫的同步完成時解決。