gpt4 book ai didi

javascript - Firebase 用户设置?

转载 作者:行者123 更新时间:2023-12-03 01:57:01 25 4
gpt4 key购买 nike

我正在为糖尿病用户开发应用程序。我已经设法创建注册用户按钮并且它有效,但我还希望将一个新管理员添加到系统中。问题是在管理员登录页面,普通用户也可以登录。我该如何实现这个...我需要帮助吗?

document.getElementById("btnSignUp").addEventListener('click', e=>{
const userEmail = document.getElementById("email_field").value;
const userPass = document.getElementById("password_field").value;
firebase.auth().createUserWithEmailAndPassword(userEmail, userPass).catch(function(error) {
console.log(error.message);
});
})

firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
//window.location = 'main.html'

document.getElementById("user_div").style.display = "block";
document.getElementById("login_div").style.display = "none";


var user = firebase.auth().currentUser;

if(user != null){

var email_id = user.email;
document.getElementById("user_para").innerHTML = "Welcome User : " + email_id;


}

} else {
// No user is signed in.

document.getElementById("user_div").style.display = "none";
document.getElementById("login_div").style.display = "block";

}
});


function login(){

var userEmail = document.getElementById("email_field").value;
var userPass = document.getElementById("password_field").value;

firebase.auth().signInWithEmailAndPassword(userEmail, userPass).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;

window.alert("Error : " + errorMessage);

// ...
});

}

function logout(){
firebase.auth().signOut();
window.location='index.html'
}

最佳答案

以下是声明具有特定 Angular 色的特定用户的方法,例如“admin”:

您为您希望仅由“管理员”读取的数据设置如下所示的安全规则:

".read": "auth != null && root.child('admins/' + auth.uid).exists()"

并且您将“admin”用户的 uid 声明为“admins”数据库节点的子节点:

- admins
-h7yic7LeS123asdfsdgwPrfKZ2: true. //<- key = uid of a admin user

您的非管理员用户可能仍然可以查看您的网页,但他们将无法获取您通常在此页面中为管理员显示的数据。

关于javascript - Firebase 用户设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50190390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com