2017-05-30 29 views
2

火力地堡数据我是新来的火力点,我试图通过.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)" 
    } 
    } 
} 
+0

显然你不能在用户创建之前有uid匹配,所以这就是错误。但只是打开该数据的规则可能不安全。我想看到这个答案。投票了 –

回答

0

问题是,你正在使用.push(),创建新的UID的孩子。 您应该检索新创建的用户UID,并将您的对象分配给相关参考。

let uid = firebase.auth().currentUser.uid; 
let usersRef = ref.child('users').child(uid); 
usersRef.set(userObj); 
+0

工作...谢谢 – user3911617