Firebase Web client - вышел из системы, пока еще подключен? - PullRequest
1 голос
/ 21 мая 2019

У меня есть веб-клиент для входа в Firebase с использованием настраиваемого токена генерирования на моем сервере, т.е.

const firebase = firebase.initializeApp(config);
myAPI.getFirebaseAuthToken().then((token) => { 
    firebase.auth().setPersistence(firebase.auth.Auth.Persistence.NONE).then(() =>
     firebase.auth().signInWithCustomToken(token).then(() => {
        const myPres = firebase.database.ref('/presences').push({
           id: my_user_id,
           time: new Date().getTime(),
           //               etc                 
        });
        myPres.onDisconnect().remove();
      });
});

Есть ли способ, чтобы этот клиент мог стать не прошедшим проверку подлинности без отключения?

Я спрашиваю, потому что у меня есть несколько ссылок с обработчиками onDisconnect, которые, кажется, не вызывают.Эти ссылки относятся к присутствию пользователя, поэтому у меня есть правило, которое запрещает писать эти ссылки кому-либо еще.Итак, я начинаю подозревать, что пользователь становится неаутентифицированным, затем при отключении происходит сбой записи, потому что у пользователя нет доступа.

Что может быть причиной этого?

1 Ответ

2 голосов
/ 21 мая 2019

Аутентификация - это концепция аутентификации Firebase. Сеанс аутентификации длится с момента успешного входа пользователя, до тех пор, пока он либо не выйдет, либо его сессия больше не будет продлена (если его учетная запись будет заблокирована или удалена и т. Д.).

onDisconnect - это концепция базы данных Firebase Realtime. Клиент связывается с сервером через веб-сокеты, а сервер использует состояние этих сокетов, чтобы определить, подключен ли клиент по-прежнему.

Клиент базы данных в реальном времени, безусловно, может потерять соединение с сервером без потери пользователем статуса аутентификации. Также возможно обратное: пользователь может выйти из системы, пока поддерживается соединение с базой данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...