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>;
參數
範圍 | 類型 | 描述 |
---|---|---|
價值觀 | 目的 | 包含多個值的物件。 |
返回:
承諾<無效>
當與資料庫的同步完成時解決。