客户端无权访问Firebase中的所需数据

问题描述:

我有一个页面调用控制器内的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 –

转到火力您的应用程序的控制台

选择数据库从一个侧面菜单 - >选择规则从上面的选项卡 - >更新您的规则像这样

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

希望它能解决您的问题。谢谢:)

+11

虽然这将消除错误,就会使数据库读取和写入的世界。如果您在提出此建议时包含此影响的警告会很好。 –

+0

错误消失了。但是仍然没有东西被存储在数据库中。 @ujjwal –

+0

ok @Frank ..我会记住这一点:( –

它似乎可以写入/ users/{uid}路由但不能读取它们。我将/ users更改为/ userx,并立即开始工作。