断网后立即从firease中删除节点

问题描述 投票:0回答:1

我有一个角度应用程序,我在 firebase 中存储用户在线/离线状态。如何在互联网断开后立即从 Firebase 中删除用户数据。 目前我在我的角度项目中使用了以下代码片段:

const db = getDatabase();
const connectedRef = ref(db, '.info/connected');

var myPresenceRef = this.angularFireDatabase.database.ref(
  '/presence/' + this.userInfo['username']
);

onValue(connectedRef, (snap) => {
  if (snap.val() === true) {
    console.log('connected to db');}
  else {
     myPresenceRef.onDisconnect().remove();
  }

我想立即删除数据。如何实施

javascript firebase firebase-realtime-database
1个回答
0
投票

没有办法强制在连接关闭后立即进行删除。

  • 此时客户端无法再强制删除,因为它不再连接到服务器。
  • 并且服务器只有在检测到客户端消失后才会执行
    onDisconnect()
    处理程序。
    • 这可能会立即发生 - 在完全断开连接的情况下,SDL 向服务器宣布它将断开连接。
    • 或者这可能需要几分钟 - 在以其他方式关闭连接时发生脏断开的情况下。这不是一些实施细节或选择,而只是互联网连接工作方式的本质。

这听起来像是一个 XY 问题,所以与其认为应该如何实现它,不如考虑一下你想要完成什么,然后如何将其映射到您正在使用的产品。

© www.soinside.com 2019 - 2024. All rights reserved.