登录页面呈现值,即使用户未登录



我正在开发一个angular应用程序,并使用Firebase在其中实现注册和日志功能。两个功能都运行良好。

现在我遇到的麻烦是在onAuthStateChanged()函数。我想要的是一旦用户登录,他/她必须能够看到一个消息,说他们已经登录。我甚至可以看到"Hi {{currentUser。firstname}}",我已经在代码中提到,一旦我登录,但只要我刷新页面,并尝试再次登录,我看到"嗨{{currentUser。firstname}}",即使我没有点击登录按钮。我不知道我的登录页面是如何渲染$rootScope的。currentUser值,即使我没有登录。我为它写了下面的代码

JS

auth.onAuthStateChanged(function(user) {
          if (user) {
            // User is signed in.
            var data = firebase.database().ref('users/' + user.uid);
            data.on('value', function(snapshot) {       
            var userobj=snapshot.val(); 
            $rootScope.currentUser=userobj;
         })} else {
            // No user is signed in.
            $rootScope.currentUser=' ';
          }
        });
html

<div class="userinfo" ng-show="currentUser">
    <span class="userinfo">Hi {{currentUser.firstname}}</span>
  </div>

行为是由设计的。来自文档:

Firebase认证实例持久化用户的状态,以便刷新页面(在浏览器中)或重新启动应用程序不会丢失用户的信息。

如果您不希望用户的认证状态被持久化,您将需要注销用户。

相关内容

  • 没有找到相关文章

最新更新