即使在同一级别中添加了子级,也会调用 Firebase 数据库 .on('value') 方法



我是使用firebase数据库的新手。我正在尝试将用户登录时间存储在Firebase数据库中。下面的示例代码。

const USER_LOGIN_TIME = "UserLoginTime";
  const userId = localStorage.getItem("userId")!;
  const spaceId = localStorage.getItem("spaceId")!;
  const loginTime = database.ref(`${spaceId}/${USER_LOGIN_TIME}/${userId}`);
  loginTime.set(time);
  loginTime.on('value', (snapshot: any) => {
    let latestTime = snapshot.val();
    // This is getting called even if some new user logs in
    // some logic goes here
  });

loginTime的存储正确。

我假设只有在${spaceId}/${USER_LOGIN_TIME}/${userId}中的值更改时才会调用.on('value')

但是,每当${spaceId}/${USER_LOGIN_TIME}中有新条目时,.on('value')方法就会被调用。当新用户在其他浏览器中登录时,将添加新的条目。

不确定我在这里做错了什么!任何帮助都将不胜感激。

更新我的Firebase DB模式:

- <spaceID> - UserLoginTime - <UserID> - time: <timestamp> - <UserID> - time: <timestamp>

问题与firebase无关,但这是我的代码。在最初的加载期间,spaceIDuserId对于所有用户都是无效的,并且为null密钥设置了时间。只要新用户登录到同一会话中的旧用户时,都会更新此更新。

相关内容

最新更新