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>
資料同步處理完畢後就會解決。