Firebase Auth State Persistence vanilla JS - PullRequest
0 голосов
/ 06 мая 2020

Я даже не уверен, что делаю правильные шаги. Вот моя проблема. Я загружаю данные на экран, если пользователь аутентифицирован. Это сводный экран. Я могу щелкнуть элемент, и он отправит меня на новую страницу «сведений» (window.location). Я передаю идентификатор в URL-адресе, а затем выполняю запрос GET, чтобы отобразить сведения. Когда я реализую свои правила в базе данных firebase (".read": "auth! = Null"), я получаю в консоли ошибку "401 Unauthorized". Так или иначе, мне нужно либо передать пользователя подробности. js, либо как-то установить Persistence. У кого-нибудь есть предложения?

ЭТО КОД ИЗ ГЛАВНОЙ. JS

auth.onAuthStateChanged(user => {
    console.log(user);
    if (user) {
        database.on('value', function(data) {
            myData = data.val()
            keys = Object.keys(myData)
            buildProperties();
        })
        // tempBuild()
    } else {
        $('.eachProperty').empty()
        $('.eachProperty').append($(`<h1>You must be signed in to view properties</h1>`))
    }
})


$('body').on('click', '.singleProp', function() {

    id = $(this).attr('id')
     window.location = "/details.html?id=" + id

})

ЭТО КОД ИЗ ДАННЫХ. JS

 var myLocation = location.search.slice(4)
    $.get(`https://XXXXXX.firebaseio.com/property/${myLocation}/.json`).then(myProperty)

    function myProperty(prop) {
        $('.propAddress').text(prop.address)
        $('.zip').text(prop.zip)

        if(prop.pictures){
            for (var i = 0; i < prop.pictures.length; i++) {
                var myImg = prop.pictures[i]
                $('.imgContainer').append($(`<div class="eachPicDiv"><img src="${myImg}" alt="0" class="detailPic">
                <ion-icon class="rBtn" name="arrow-redo-outline"></ion-icon>
                </div`))
            }
        } else {
            $('.imgContainer').append($(`<h1>THERE WERE NO PICTURES</h1>`))
        }
    }

1 Ответ

0 голосов
/ 06 мая 2020

Вы используете jQuery для получения данных из базы данных Firebase,
$. Get - это метод jQuery, и для этого вам нужен какой-то токен аутентификации .

Firebase уже обеспечивает лучший в своем классе доступ, подробнее о доступе здесь .

Узнайте на примере здесь .

...