Доступ пользователя Firebase с нескольких страниц - PullRequest
0 голосов
/ 03 июня 2018

Я пытаюсь получить доступ к файлу аутентификации пользователя с нескольких страниц.Я пробовал это на 1.html, 2.html и code.js.1.HTML

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title></title>
        <script src="https://www.gstatic.com/firebasejs/4.10.0/firebase.js"></script>
    </head>
    <body>
        <input type="email" id="email">
        <input type="password" id="password">
        <button onclick="sign()">Yo</button>
    </body>
    <script src="code.js"></script>
</html>

2.HTML

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title></title>
        <script src="https://www.gstatic.com/firebasejs/4.10.0/firebase.js"></script>
    </head>
    <body>
        <p id="p" onload="runIt()">TEST</p>
    </body>
    <script src="code.js"></script>
</html>

CODE.JS

var config = {
    apiKey: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    authDomain: "xxxxxxxxxxxxxxxxxxxxxxxxx.com",
    databaseURL: "https://xxxxxxxxxxxxxxxxxxxxxx.com",
    projectId: "xxxxxxxxxxxxxxxxxxxx",
    storageBucket: "xxxxxxxxxxxxxxxx.appspot.com",
    messagingSenderId: "xxxxxxxxxxx"
};
firebase.initializeApp(config);
function sign() {
    var email = document.getElementById('email').value;
    var password = document.getElementById('password').value;
    firebase.auth().signInWithEmailAndPassword(email, password).then(function() {
        window.location = "2.html";
    });
}
function runIt() {
   console.log(firebase.auth().currentUser.uid);
}

Как я могу войти в консоль пользователя?UID со второй страницы?Спасибо!

Ответы [ 3 ]

0 голосов
/ 03 июня 2018

То, что произошло, вызвало функцию перед входом в систему.Вы должны дать ему секунду.Вы можете написать:

function initApp() {
    firebase.auth().onAuthStateChanged(function(user) {
        if (user) {
            // User is signed in.
            console.log(firebase.auth().currentUser.uid);
        }
    });
}

Затем он будет регистрировать uid после изменения состояния авторизации или когда пользователь входит в систему.

0 голосов
/ 03 июня 2018

Вы загружаете общий Firebase JavaScript SDK и файл конфигурации firebase на обеих страницах, обслуживаемых из одного домена / ipaddr.Токен авторизации предоставляется и сохраняется в соответствии с настройкой.Каждая новая загрузка страницы приводит к изменению состояния, .firebase.auth().onAuthStateChanged

Постоянство состояния аутентификации

Вы можете указать, как состояние аутентификации сохраняется при использовании Firebase JSSDK.Это включает в себя возможность указать, следует ли сохранять подписанного пользователя в течение неопределенного времени до явного выхода из системы, очищается, когда окно закрывается или очищается при перезагрузке страницы.

Ожидаемое поведение на вкладках браузера

Следующее ожидаемое поведение будет применяться при использовании разных типов персистентности на разных вкладках.Требование заключается в том, что в любой момент никогда не должно быть нескольких типов сохраненных состояний одновременно (например, состояние авторизации, сохраненное в сеансе и локальные типы хранения):

  • Пользователи могут войти в систему с помощьюсеанс или отсутствие постоянства с разными пользователями на нескольких вкладках.Каждая вкладка не может видеть состояние другой вкладки.
  • Любая попытка входа с использованием локального постоянного доступа будет обнаружена и синхронизирована на всех вкладках.Если ранее пользователь выполнял вход на определенной вкладке с использованием сеанса или без сохранения, это состояние будет очищено.
  • Если пользователь ранее выполнял вход с использованием локального сохранения с несколькими открытыми вкладками, а затем переключается на отсутствие или сеанспостоянство в одной вкладке, состояние этой вкладки будет изменено, если пользователь будет сохранен в сеансе или отсутствует, а во всех других вкладках пользователь будет отключен.
0 голосов
/ 03 июня 2018

Пытаешься:

var user = firebase.auth().currentUser;

if (user != null) {
  uid = user.uid; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...