Javascript 如果未使用Firebase身份验证登录,则限制对页面的访问;检索数据
我有一个带有以下代码的登录页面(取自firebase示例auth应用程序): 我刚刚添加了一行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) { //
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);
});