客户端无权访问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-
转到火力您的应用程序的控制台
选择数据库从一个侧面菜单 - >选择规则从上面的选项卡 - >更新您的规则像这样
{
"rules": {
".read": true,
".write": true
}
}
希望它能解决您的问题。谢谢:)
虽然这将消除错误,就会使数据库读取和写入的世界。如果您在提出此建议时包含此影响的警告会很好。 –
错误消失了。但是仍然没有东西被存储在数据库中。 @ujjwal –
ok @Frank ..我会记住这一点:( –
它似乎可以写入/ users/{uid}路由但不能读取它们。我将/ users更改为/ userx,并立即开始工作。
请将您的Firebase规则添加到您的问题中。这些实际上是导致权限被拒绝的错误。 –
除了给出规则。您在问题中包含了JSON树的图片。请用实际的JSON替换为文本,您可以通过点击Firebase数据库控制台中的导出按钮轻松获取。将JSON作为文本可以搜索,使我们能够轻松使用它来测试您的实际数据,并将其用于我们的答案中,并且通常只是一件好事。 –
'{ “规则”:{ “.read ”:真实, “ .WRITE”:真 }} '@AndréKool –