火力地堡數據我是新來的火力點,我試圖通過.then()
上firebase.auth().createUserWithEmailAndPassword(email, password)
不節能
保存用戶對象(用戶電子郵件)數據庫當我試圖做到這一點,它拋出一個錯誤:
FIREBASE WARNING: set at /users/-KlMikr6xZnfYC6dFJ6L failed: permission_denied
基本上說我沒有權限將用戶數據設置到用戶節點。
我知道函數的作用,因爲當我將安全寫入規則設置爲true時,在數據庫中創建userobj
。
不知道我在做什麼錯。
controller.js
angular.module('app')
.controller('appCtrl', function($scope){
//empty user object to store info
$scope.user = {};
//empty object to accept user password
$scope.password = {};
// add login event
$scope.signUp = function(){
const email = $scope.user.email;
const password = $scope.password.setup;
// create new firebase user
firebase.auth().createUserWithEmailAndPassword(email, password)
// add user object to database
.then(function(){
var userObj = $scope.user;
console.log($scope.user);
// set up database references
let database = firebase.database();
let ref = database.ref();
let usersRef = ref.child('users');
// push user object to database
usersRef.push(userObj);
})
.catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
console.log(errorCode);
console.log(errorMessage);
});
};
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
console.log('user signed in');
var uid = user.uid;
console.log(uid);
} else {
// No user is signed in.
console.log('user not signed in');
}
});
})
火力地堡數據庫規則
"rules": {
"users": {
"$uid": {
".read": true,
".write": "(auth.uid === $uid)"
}
}
}
顯然你不能在用戶創建之前有uid匹配,所以這就是錯誤。但只是打開該數據的規則可能不安全。我想看到這個答案。投票了 –