#javascript #node.js #firebase #firebase-realtime-database #firebase-authentication
#javascript #node.js #firebase #firebase-realtime-database #firebase-аутентификация
Вопрос:
1) Пользователь X посещает мою веб-страницу, и X правильно аутентифицирован и может выполнять запись в мою базу данных firebase через веб-браузер.
2) Затем пользователь Y посещает мою веб-страницу, и Y проходит проверку подлинности и может выполнять запись в мою базу данных firebase через веб-браузер. Однако после аутентификации пользователя Y пользователь X начинает получать сообщения журнала консоли «Отказано в разрешении» в браузере и больше не может выполнять запись в firebase.
Почему X теряет права аутентификации при проверке подлинности Y?
Вот Node.js серверный код:
token = Fb.auth().createCustomToken(uid, params);
...
response.render('pages/xyz', {settings:settings, token:token, ...});
Вот html / js, доставленный Node.js к браузеру:
firebase.initializeApp(<%- JSON.stringify(settings);%>);
db = firebase.database();
function initApp() {
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
//do nothing
}
});
}
$('document').ready(function(){
initApp();
firebase.auth().signInWithCustomToken('<%=token%>').catch(function(error) {
// Handle Errors here.
});
});
Комментарии:
1. Вы пытаетесь аутентифицировать несколько пользователей на одной вкладке браузера? Это не сработает. Для проверки подлинности Firebase требуется не более одного пользователя, вошедшего в систему, для каждого приложения.
2. Ах да. Я тестировал это, открывая две разные вкладки браузера (для двух разных пользователей) в одном браузере.
3. Это не сработает. Если вы хотите протестировать локально, попробуйте другие браузеры или обычную вкладку окно инкогнито.
4. K спасибо. Если вы напишете это как ответ ниже, я пометлю его как правильный.
Ответ №1:
Только один человек может быть аутентифицирован в приложении одновременно.
Если вы откроете несколько вкладок в одном окне браузера, они, скорее всего, окажутся одним пользователем.
Чтобы иметь несколько пользователей на одном компьютере, используйте другой дополнительный браузер или откройте окно инкогнито.