Я новичок в использовании базы данных 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
хранится правильно.
Я предполагаю, что .on('value')
будет вызван, только если значение изменится на ${spaceId}/${USER_LOGIN_TIME}/${userId}
.
Но проблема в том, что .on('value')
метод вызывается всякий раз, когда в ${spaceId}/${USER_LOGIN_TIME}
появляется новая запись.Новая запись будет добавлена, когда новый пользователь войдет в другой браузер.
Не уверен, что я делаю здесь неправильно!Любая помощь приветствуется.
Обновление Моя схема базы данных Firebase:
- <spaceID>
- UserLoginTime
- <UserID>
- time: <timestamp>
- <UserID>
- time: <timestamp>