Javascript 如何在Firebase中创建管理员用户,等等?
我不太明白如何使用不同权限的用户(管理员、学生、教师),以下是规则:Javascript 如何在Firebase中创建管理员用户,等等?,javascript,firebase,vue.js,firebase-security,Javascript,Firebase,Vue.js,Firebase Security,我不太明白如何使用不同权限的用户(管理员、学生、教师),以下是规则: {"rules": {"authentication": {"users": {"$uid": { ".read": "auth.uid == $uid || root.child('authentication').child('users').child('auth.uid').child('isAdmin').val() == true
{"rules":
{"authentication":
{"users":
{"$uid": {
".read": "auth.uid == $uid || root.child('authentication').child('users').child('auth.uid').child('isAdmin').val() == true",
".write": "newData.parent().parent().parent().child('authentication').child('users').child('auth.uid').child('isAdmin').val() == true",
".indexOn": [
"email"
]
}
}
}
}
}
用户:
实时数据库:
{
"users" : {
"-KVVe4Ncd5Qnm5r37zVp" : {
"email" : "admin@gmail.com",
"isAdmin" : true,
"name" : "admin"
},
"-KVVeADyh07mBXBFImtq" : {
"email" : "djvang92@gmail.com",
"isAdmin" : true,
"name" : "Ivan"
}
}
}
Firebase脚本:
// Initialize Firebase
const config = {
apiKey: "AIzaSyAfeEpMopsPWnowiv1uEWYINgk6V_ohvG4",
authDomain: "spalah-1358.firebaseapp.com",
databaseURL: "https://spalah-1358.firebaseio.com",
storageBucket: "spalah-1358.appspot.com",
messagingSenderId: "300000265085"
}
firebase.initializeApp(config)
export const db = firebase.database();
export const auth = firebase.auth()
console.log(auth);
// var provider = new firebase.auth.GoogleAuthProvider();
// var provider = new firebase.auth.FacebookAuthProvider();
// var provider = new firebase.auth.TwitterAuthProvider();
// var provider = new firebase.auth.GithubAuthProvider();
export default {
// User object will let us check authentication status
user: {
authenticated: false,
data: null,
message: ''
},
login(context, creds, redirect) {
console.log('Login...');
let self = this;
let email = creds.email;
let password = creds.password;
let promise = auth.signInWithEmailAndPassword(email, password);
console.log(email, password);
// Redirect to a specified route
if(redirect) {
// context.$router.go(redirect)
// console.log(context.$router);
}
promise
.then(user => {
self.user.authenticated = true
self.user.message = false
})
.catch(e => {
self.user.message = e.message
console.log(e);
})
},
signup(context, creds, redirect) {
console.log('Sign Up...');
let email = creds.email
let password = creds.password
let promise = auth.createUserWithEmailAndPassword(email, password);
promise
.then(user => {
console.log(user);
self.user.message = false
})
.catch(e => {
self.user.message = e.message
console.log(e);
})
},
logout() {
let self = this
auth.signOut().then(function() {
// Sign-out successful.
console.log('Log-out successful');
self.user.authenticated = false
}, function(error) {
// An error happened.
console.log('Log-out error');
});
},
provider(context, creds, redirect) {
let provider = new firebase.auth.GoogleAuthProvider()
auth.signInWithPopup(provider).then(function(result) {
// Accounts successfully linked.
var credential = result.credential;
var user = result.user;
// ...
console.log(credential);
console.log(user.photoURL);
}).catch(function(error) {
// Handle Errors here.
// ...
console.log(error);
});
},
checkAuth() {
let self = this
auth.onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
console.log('Connect:', user);
self.user.authenticated = true
self.user.data = user
} else {
// No user is signed in.
console.log('No connect:');
self.user.authenticated = false
self.user.data = null
}
});
}
}
我不知道如何在Javascript中跟踪它。。。
(应用程序上是否有vue.js)可能有任何示例说明如何使用不同的。。。
谢谢大家! 您的问题中包含了一个指向JSON树图片的链接。请将其替换为实际的JSON作为文本,您可以通过单击Firebase数据库控制台中的导出按钮轻松获得该文本。将JSON作为文本使其可搜索,使我们能够轻松地使用它来测试您的实际数据,并在我们的答案中使用它,这通常是一件好事。此外:如果您在使用特定的JavaScript时遇到问题,请显示。@FrankvanPuffelen谢谢。我是新手。更新的问题您的问题中包含了一个指向JSON树图片的链接。请将其替换为实际的JSON作为文本,您可以通过单击Firebase数据库控制台中的导出按钮轻松获得该文本。将JSON作为文本使其可搜索,使我们能够轻松地使用它来测试您的实际数据,并在我们的答案中使用它,这通常是一件好事。此外:如果您在使用特定的JavaScript时遇到问题,请显示。@FrankvanPuffelen谢谢。我是新手。更新问题