簡體   English   中英

如何使用 navigator.sendBeacon() 執行 function?

[英]How to use navigator.sendBeacon() to execute a function?

我目前正在使用 Firestore 后端。 我想要實現的是在 window 關閉時更新 Firestore 上的文檔。 我知道我們可以使用Navigator.sendBeacon()在 window 關閉時調用 API,因為它接收urldata (可選)作為其參數。 但是,我想改為執行 function,例如從 Firestore 中,有一個名為updateDoc的 function。 有什么辦法可以做到這一點?

或者我可以使用其他方法嗎?

根據本文檔

有一個 function firebase.database.onDisconnect onDisconnect class 允許您在客戶端與數據庫服務器斷開連接時寫入或清除數據。 無論您的客戶端是否完全斷開連接,這些更新都會發生,因此即使連接斷開或客戶端崩潰,您也可以依靠它們來清理數據。

方法更新

update ( values: Object, onComplete? : ( a: Error | null ) => any ): Promise < any >

當客戶端斷開連接時(由於關閉瀏覽器、導航到新頁面或網絡問題),在此位置寫入多個值。

values 參數包含多個屬性值對,它們將一起寫入數據庫。 每個子屬性可以是一個簡單的屬性(例如,“name”),也可以是從當前位置到要更新的數據的相對路徑(例如,“name/first”)。

與 set() 方法相反,update() 可用於有選擇地僅更新當前位置的引用屬性(而不是替換當前位置的所有子屬性)。

使用update()的連接版本查看更多示例。

 var ref = firebase.database().ref("users/ada"); ref.update({ onlineState: true, status: "I'm online." }); ref.onDisconnect().update({ onlineState: false, status: "I'm offline." });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM