亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將回調附加到onauthStateChanged偵聽器firebase

將回調附加到onauthStateChanged偵聽器firebase

冉冉說 2021-04-06 17:14:34
我有此代碼,我只需要返回一個uid,以便以后可以使用Id進行Firestore操作$(document).ready(function () {    var uid;    auth.onAuthStateChanged(function (user) {        if (user != null) {            uid = user.uid;             console.log(typeof uid)//returns a string ;        }    });    console.log(uid);    function fetch() {        var docRef = db.collection("Users").doc(uid);        docRef.get().then(function (doc) {            console.log(doc.data);        }).catch(function (error) {            console.log("Error getting document:", error);        });    }});我如何存儲uid以便以后檢索它以進行數據庫操作。當前,運行該check函數將返回uid未定義的錯誤。如果我嘗試登錄uid控制臺也一樣。我猜該函數在偵聽器解析之前運行,但是我將如何解決此問題。由于用戶之間的互聯網連接速度不同,設置計時器也無濟于事(添加代碼)check1();check3();//fetch();function check1() {    if (typeof uid === 'undefined') {        console.log("not ready");        return false    }}function check3() {    if (check1 == false) {        check1();    } else {        console.log("ready");  //here this logs ready        console.log(typeof uid); //then here it logs "undefined" still        fetch(); //so this function call brings the error    }}function fetch() {    var docRef = db.collection("Users").doc(uid);    docRef.get().then(function (doc) {        console.log(doc.data();    }).catch(function (error) {        console.log("Error getting document:", error);    });}check3如果uid未定義,為什么函數準備好記錄日志。我還需要隱藏特定的鏈接,直到uid具有值為止。我該如何改善上述代碼而無法隱藏鏈接
查看完整描述

1 回答

?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

check在身份驗證成功完成之前,您的猜測幾乎可以肯定是正確的。設置計時器并不能真正幫助您防彈。

由于我們不知道您需要何時或在什么條件下致電check,因此建議采取不同的措施是很困難的。至少,check應該檢查uid是否尚未定義,如果不存在,請拒絕執行任何操作。

通常,UI將被編碼為在用戶成功登錄之前不允許用戶執行任何操作。


查看完整回答
反對 回復 2021-04-08
  • 1 回答
  • 0 關注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號