簡體   English   中英

Firebase Auth State 持久性香草JS

[英]Firebase Auth State Persistence vanilla JS

我不確定我是否在嘗試正確的事情。 這是我的問題。 如果用戶通過身份驗證,我會將數據加載到屏幕上。 它是一個摘要屏幕。 我可以單擊一個項目,它會將我發送到一個新的“詳細信息”頁面(window.location)。 我在 URL 中傳遞 ID,然后執行 GET 請求以獲取要顯示的詳細信息。 當我在 firebase DB 上實施我的規則時,(“.read”:“auth,= null”)。 我在控制台中收到“401 Unauthorized”錯誤。 所以我需要以某種方式將用戶傳遞給 details.js 或以某種方式設置 Persistence? 有人有什么建議嗎?

這是來自 MAIN.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

})

這是來自 DETAILS.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>`))
        }
    }

您正在使用 jQuery 從 Firebase 數據庫中獲取您的數據,
$.get 是一種 jQuery方法,要成功,您需要擁有某種身份驗證令牌。

Firebase 已經提供了最好的 class 訪問,在此處閱讀有關訪問的更多信息。

在這里通過示例學習

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM