javascript - 如何将用户 uid 从登录页面传递到 Web 应用程序中的不同页面

标签 javascript firebase firebase-authentication

我正在通过 firebase-auth 登录用户,并且需要将其用户 uid 传递到重定向页面。 user-uid 如何传递?

我尝试使用 firebase auth 上的文档,但无法完全解决


loginForm.addEventListener('submit', (e) => {
 e.preventDefault();

    const email = loginForm['email'].value;
    const password = loginForm['password'].value;

    console.log(email, password);
    firebase.initializeApp(config);
    firebase.auth().signInWithEmailAndPassword(email, password)
        .then(cred => {


        if(email ==='admin@mombasa.com' && password ==='adminMomb') {
            window.location = './admin-map.php';
        }
            else if(email ==='admin@nairobi.com' && password ==='adminNai') {
                window.location = './admin-map.php';
            }
           else if(email ==='admin@eldoret.com' && password ==='adminEld') {
                window.location = './admin-map.php';
            }


           else firebase.auth().onAuthStateChanged(function(user) {

                    window.user = user;
                    console.log('logged in ', user);
                    window.location = './dailyreports.php';
                    console.log('logged in ', user);

            });

        }).catch(
        function(error) {
            // Handle Errors here.
            var errorCode = error.code;
            var errorMessage = error.message;
            // ...
            console.log(errorMessage, errorCode);
        }
    )
    ;


});

导航到下一页时,我希望在控制台中看到用户 uid 输出,但它返回空白

最佳答案

与其传递 UID,不如使用所谓的身份验证状态监听器来获取下一页中的状态。

getting the currently signed in user 上的文档所示:

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    // User is signed in.
  } else {
    // No user is signed in.
  }
});

在新页面上以这种方式获取用户帐户不会有任何延迟,因为 Firebase SDK 将能够从本地存储中存储的信息恢复状态。

关于javascript - 如何将用户 uid 从登录页面传递到 Web 应用程序中的不同页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58782956/

相关文章:

ios - Firebase 存储警告 : downloadURL( )' is deprecated: Use ` StorageReference. downloadURLWithCompletion()

firebase - swift : Firebase Unresolved identifier FirebaseApp. configure() && FIRApp.configure()

javascript - AngularJS - 使用命名空间解析 JSON feed

javascript - 通过 Javascript 在各种浏览器窗口/选项卡中维护 iFrame 页面的状态

javascript - 在 Chrome 的弹出窗口中调试 JavaScript

firebase - Unity3D Firebase 访问冲突

JavaScript 通过在不损失高度的情况下滑动更多内容来替换内容

ios - 设备上未验证的电子邮件 (Firebase)

Swift 闭包不设置变量

java - 经过 Android 验证后无法在 Firebase 中添加