回答

1

當應用程序啓動時,您可以使用https://www.firebase.com/docs/web/api/ondisconnect/remove.html來確保在客戶端脫機時刪除特定數據。然後,您可以在其他地方查看數據是否存在(仍處於聯機狀態)或不存在(現在脫機)。

本頁面https://www.firebase.com/docs/web/api/ondisconnect/狀態下

的onDisconnect類允許你寫或清除數據時,從火力地堡服務器的 客戶端斷開連接。這些更新發生在 您的客戶端是否乾淨地斷開連接,因此,即使連接斷開或客戶端 崩潰,您也可以依靠它們清除數據。

onDisconnect類最常用於管理在 應用程序中的存在,其中有用的是檢測連接了多少個客戶端以及何時斷開其他客戶端。有關更多信息,請參閱離線功能 。

讓我們假設你有一個在你的數據庫中的在線用戶列表。類似這樣的:

onlineUsers: { 
    user1: true, 
    user23: true, 
    user100: true 
} 

該示例說明用戶user1,user23和user100在線。 Let's說user23上線,你想的火力分貝,以反映如果該用戶是否在線,這樣做:

var disconnectRef = new Firebase('https://<YOUR-FIREBASE-APP>.firebaseio-demo.com/onlineUsers/user23'); 
disconnectRef.onDisconnect().remove(); 

上面的代碼不會在執行刪除任何東西。它只是告訴Firebase服務器在客戶端脫機時移除onlineUsers/user23。

只要客戶端(比如Android應用程式/裝置)來離線狀態,火力地堡服務器將確保新的狀態將是這樣的:

onlineUsers: { 
    user1: true, 
    user100: true 
} 

正如你所看到的,user23不再出現在列表中。

+0

但我認爲這是'安全的做事方式'。如果網絡突然崩潰怎麼辦?這個事件處理程序會做它的工作嗎? – roostaamir

+0

另外,我認爲這是針對數據庫操作,我沒有使用,但再次感謝您的回答。 – roostaamir

+0

是的,這是安全的事情。即使在斷開連接。我編輯了我的答案並提供了更多信息。 – Sten

相關問題