11

我有一個頁面調用控制器內的addCheckin()方法。在控制器中,我試圖按照以下步驟創建一個參考:客戶端無權訪問Firebase中的所需數據

var ref = firebase.database().ref("users/" + $scope.whichuser + "/meetings/" +$scope.whichmeeting + "/checkins"); 

$scope.whichuser$scope.whichmeeting是我從其他途徑傳遞$routeParams。 這裏是我簽入控制器 -

myApp.controller("CheckinsController", 
    ['$scope','$rootScope','$firebaseArray','$routeParams','$firebaseObject', 
    function($scope,$rootScope,$firebaseArray,$routeParams,$firebaseObject){ 

     $scope.whichuser = $routeParams.uid; 
     $scope.whichmeeting = $routeParams.mid; 

     var ref = firebase.database().ref("users/" + $scope.whichuser + "/meetings/" +$scope.whichmeeting + "/checkins"); 

     $scope.addCheckin = function(){ 
      var checkinInfo = $firebaseArray(ref); 
      var data={ 
       firstname:$scope.firstname, 
       lastname:$scope.lastname, 
       email:$scope.email, 
       date:firebase.database.ServerValue.TIMESTAMP 
      } 

      checkinInfo.$add(data); 
     } 

}]);/*controller*/ 

有跡象表明,我正在這裏 -

錯誤一兩個錯誤:

Error: permission_denied at /users/Vp2P1MqKm7ckXqV2Uy3OzTnn6bB3/meetings: Client doesn't have permission to access the desired data.

錯誤2:

Error: permission_denied at /users/Vp2P1MqKm7ckXqV2Uy3OzTnn6bB3/meetings/-KT5tqMYKXsFssmcRLm6/checkins: Client doesn't have permission to access the desired data.

這就是我特林achieve-

enter image description here

+1

請將您的Firebase規則添加到您的問題中。這些實際上是導致權限被拒絕的錯誤。 –

+1

除了給出規則。您在問題中包含了JSON樹的圖片。請用實際的JSON替換爲文本,您可以通過點擊Firebase數據庫控制檯中的導出按鈕輕鬆獲取。將JSON作爲文本可以搜索,使我們能夠輕鬆使用它來測試您的實際數據,並將其用於我們的答案中,並且通常只是一件好事。 –

+0

'{ 「規則」:{ 「.read 」:真實, 「 .WRITE」:真 }} '@AndréKool –

回答

17

轉到火力您的應用程序的控制檯

選擇數據庫從一個側面菜單 - >選擇規則從上面的選項卡 - >更新您的規則像這樣

{ 
    "rules": {  
     ".read": true, 
     ".write": true 
    } 
} 

希望它能解決您的問題。謝謝:)

+11

雖然這將消除錯誤,就會使數據庫讀取和寫入的世界。如果您在提出此建議時包含此影響的警告會很好。 –

+0

錯誤消失了。但是仍然沒有東西被存儲在數據庫中。 @ujjwal –

+0

ok @Frank ..我會記住這一點:( –

0

它似乎可以寫入/ users/{uid}路由但不能讀取它們。我將/ users更改爲/ userx,並立即開始工作。

相關問題