Клиент не имеет права доступа к требуемым данным в Firebase
У меня есть страница, которая вызывает addCheckin()
который находится внутри контроллера. В контроллере я пытаюсь создать ссылку следующим образом:
var ref = firebase.database().ref("users/" + $scope.whichuser + "/meetings/" +$scope.whichmeeting + "/checkins");
$scope.whichuser
и $scope.whichmeeting
- это $routeParams
которые я $routeParams
с другого маршрута. Здесь моя регистрация controller-
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*/
Есть две ошибки, которые я получаю here-
Ошибка 1:
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-
Ответы
Ответ 1
Перейдите в консоль Firebase вашего приложения.
Выберите "База данных из бокового меню" → "Выбрать правило". С вкладками выше → Обновите правило, подобное этому.
{
"rules": {
".read": true,
".write": true
}
}
надеюсь, что он решит вашу проблему. благодаря :)
Ответ 2
Похоже, что маршруты /users/{uid} могут быть записаны, но они не могут быть прочитаны. Я изменил /users/userx и сразу начал работать.
Ответ 3
Проект Firebase по умолчанию начинается с Firestore в качестве базы данных.
Эта проблема может возникнуть, если приложение использует "База данных Firebase Realtime" и разрешения для нее не настроены. Разрешение на чтение и запись для базы данных Firebase Realtime должно быть явно предоставлено.
Для этого в консоли Firebase База данных> Выберите "База данных реального времени" вместо "Бета-версия Firestore" в раскрывающемся меню "База данных> Правила> Установить".
{
/* Visit https://firebase.google.com/docs/database/security to learn more about security rules. */
"rules": {
".read": true,
".write": true
}
}
Надеюсь, что это поможет!