2017-05-30 28 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