Javascript 如果未使用Firebase身份验证登录,则限制对页面的访问;检索数据

Javascript 如果未使用Firebase身份验证登录,则限制对页面的访问;检索数据,javascript,firebase,firebase-authentication,Javascript,Firebase,Firebase Authentication,我有一个带有以下代码的登录页面(取自firebase示例auth应用程序): 我刚刚添加了一行window.location='index.html',以便在登录时将用户重定向到index.html 现在在index.html文件中,我有以下JS代码: function initApp() { firebase.auth().onAuthStateChanged(function(user) { if (user) { //

我有一个带有以下代码的登录页面(取自firebase示例auth应用程序):

我刚刚添加了一行
window.location='index.html'
,以便在登录时将用户重定向到index.html

现在在index.html文件中,我有以下JS代码:

     function initApp() {

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

            if (user) {

      // User is signed in.
      var displayName = user.displayName;
      var email = user.email;
      var emailVerified = user.emailVerified;
      var photoURL = user.photoURL;
      var isAnonymous = user.isAnonymous;
      var uid = user.uid;
      //var uid = bCbADd1qJqhoVbDg0QCDIlq5eMx1;
      var providerData = user.providerData;
      }
     else {
     window.location = 'login.html';
    }
  });
}
window.onload = function() {
  initApp();
};


window.onload = function() {      
document.getElementById('sign-out').onclick = function toggleSignOut() {
  firebase.auth().signOut().then(function() {
  console.log('Signed Out');
    window.location = 'login.html';
}, function(error) {
  console.error('Sign Out Error', error);
});
}
}

   var database = firebase.database();
    database.ref(`user_profiles/${uid}/name`).once('value').then(photosSnap => {
    var username = photosSnap.val();
    $('#username').html(username);    
    });
有一个有效的注销按钮。我的问题是,这个页面应该只有登录的人才能访问,但使用当前的代码,任何人都可以访问它,无论是否登录。我认为这一部分可以:

else{
window.location='login.html';

我应该实施什么来限制访问


此外,我想从当前登录的用户检索userid。上面代码的最后一部分应该可以,但它没有检索到任何内容。我使用的是uid变量,上面由var uid=user.uid;设置。

您试图限制访问什么?当然不是HTML本身。如果它是从Firebase Dat检索的数据abase,您可以在DB级别使用限制。如果用户未登录,我希望将其重定向到login.html。您试图限制对什么的访问?当然不是html本身。如果是从Firebase数据库检索的数据,则可以在DB级别使用限制。如果用户未登录,我希望将其重定向到login.html未登录
     function initApp() {

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

            if (user) {

      // User is signed in.
      var displayName = user.displayName;
      var email = user.email;
      var emailVerified = user.emailVerified;
      var photoURL = user.photoURL;
      var isAnonymous = user.isAnonymous;
      var uid = user.uid;
      //var uid = bCbADd1qJqhoVbDg0QCDIlq5eMx1;
      var providerData = user.providerData;
      }
     else {
     window.location = 'login.html';
    }
  });
}
window.onload = function() {
  initApp();
};


window.onload = function() {      
document.getElementById('sign-out').onclick = function toggleSignOut() {
  firebase.auth().signOut().then(function() {
  console.log('Signed Out');
    window.location = 'login.html';
}, function(error) {
  console.error('Sign Out Error', error);
});
}
}

   var database = firebase.database();
    database.ref(`user_profiles/${uid}/name`).once('value').then(photosSnap => {
    var username = photosSnap.val();
    $('#username').html(username);    
    });