OnDisconnect class

onDisconnect 類別可讓您在用戶端與資料庫伺服器中斷連線時,寫入或清除資料。無論用戶端是否完全中斷連線,都會執行這些更新,因此即使連線中斷或用戶端當機,您依然可以透過更新功能清理資料。

onDisconnect 類別最常用於管理應用程式中的狀態,此時有助於偵測已連線的用戶端數量,以及其他用戶端中斷連線的情況。詳情請參閱「在 JavaScript 中啟用離線功能」。

為了避免在要求傳輸至資料庫伺服器之前連線中斷而發生問題,請在寫入任何資料之前呼叫這些函式。

請注意,onDisconnect 作業只會觸發一次。如果您希望在每次中斷連線時執行作業,就需在每次重新連線時重新建立 onDisconnect 作業。

簽名:

export declare class OnDisconnect 

方法

方法 修飾符 說明
cancel() 取消所有先前已為此位置和所有子項排入佇列的 onDisconnect() 設定或更新事件。如果此位置的寫入作業已透過 set() 或父項位置的 update() 排入佇列,系統會取消寫入此位置的寫入作業,但仍會寫入同層級位置。
remove() 確保這個位置的資料在用戶端中斷連線時 (因為關閉瀏覽器、前往新網頁或網路發生問題) 時遭到刪除。
set(值) 確保當用戶端中斷連線時,這個位置的資料會設為指定值 (因為關閉瀏覽器、前往新頁面或網路發生問題)。set() 特別適合用於執行「存在」的情況當使用者中斷連線時,值應變更或清除,使值顯示為「離線」提供給其他使用者詳情請參閱「在 JavaScript 中啟用離線功能」。請注意,onDisconnect 作業只會觸發一次。如果希望每次連線中斷時都要重新執行 onDisconnect 作業,就得在每次連線中斷時重新建立。
setWithPriority(值, 優先) 確保這個位置的資料已設為指定的值,以及用戶端中斷連線時 (由於關閉瀏覽器、前往新頁面或網路發生問題) 時的優先順序。
update(值) 用戶端中斷連線時,會在這個位置寫入多個值 (原因包括關閉瀏覽器、前往新頁面,或是網路發生問題)。values 引數包含多個會一起寫入資料庫的屬性/值組合。每個子項屬性可以是簡單的屬性 (例如「名稱」),或是從目前位置到要更新資料的相對路徑 (例如「name/first」)。set() 方法不同,update() 可用於選擇性地更新目前位置的參照屬性,而非取代目前位置的所有子項屬性。

OnConnected.cancel()

取消所有先前排入佇列的 onDisconnect() 設定或更新此位置和所有子項。

如果這個位置的寫入作業已排入父位置的 set()update(),系統會取消寫入這個位置的寫入作業,但同層級位置仍會產生寫入作業。

簽名:

cancel(): Promise<void>;

傳回:

承諾<void>

成功同步到伺服器後就會解決。

中斷連結.remove()

確保這個位置的資料在用戶端中斷連線時 (因為關閉瀏覽器、前往新網頁或網路發生問題) 時遭到刪除。

簽名:

remove(): Promise<void>;

傳回:

承諾<void>

成功同步到伺服器後就會解決。

前往中斷連線.set()

確保在用戶端中斷連線時,這個位置的資料會設為指定值 (因為關閉瀏覽器、前往新的頁面或網路發生問題)。

set() 特別適合用來實作當使用者中斷連線時,值應變更或清除,使值顯示為「離線」提供給其他使用者詳情請參閱「在 JavaScript 中啟用離線功能」。

請注意,onDisconnect 作業只會觸發一次。如果希望每次連線中斷時都要重新執行 onDisconnect 作業,就得在每次連線中斷時重新建立。

簽名:

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

參數

參數 類型 說明
不明 要在中斷連線時寫入這個位置的值 (可以是物件、陣列、字串、數字、布林值或空值)。

傳回:

承諾<void>

資料同步處理完畢後就會解決。

OnConnected.setWithPriority()

確保這個位置的資料已設為指定的值,以及用戶端中斷連線時 (由於關閉瀏覽器、前往新頁面或網路發生問題) 時的優先順序。

簽名:

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

參數

參數 類型 說明
不明 要在中斷連線時寫入這個位置的值 (可以是物件、陣列、字串、數字、布林值或空值)。
優先順序 數字 |字串 |空值 要寫入的優先順序 (字串、數字或空值)。

傳回:

承諾<void>

資料同步處理完畢後就會解決。

前往中斷連線.update()

在用戶端中斷連線時,在這裡寫入多個值 (因為關閉瀏覽器、前往新頁面或網路發生問題)。

values 引數包含多個屬性/值組合,這些值會一起寫入資料庫。每個子項屬性可以是簡單的屬性 (例如「名稱」),也可以是目前位置到待更新資料的相對路徑 (例如「name/first」)。

set() 方法不同,update() 可用於選擇性地更新目前位置的參照屬性 (而非取代目前位置的所有子項屬性)。

簽名:

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

參數

參數 類型 說明
物件 包含多個值的物件。

傳回:

承諾<void>

資料同步處理完畢後就會解決。