Ich habe eine Seite, die die addCheckin()
-Methode aufruft, die sich in einem Controller befindet. Im Controller versuche ich, eine Referenz wie folgt zu erstellen:
var ref = firebase.database().ref("users/" + $scope.whichuser + "/meetings/" +$scope.whichmeeting + "/checkins");
$scope.whichuser
und $scope.whichmeeting
sind der $routeParams
, den ich von einer anderen Route aus passiert . Hier ist mein Check-In-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*/
Es gibt zwei Fehler, die ich hier bekomme:
Fehler 1:
Error: permission_denied at /users/Vp2P1MqKm7ckXqV2Uy3OzTnn6bB3/meetings: Client doesn't have permission to access the desired data.
Fehler 2:
Error: permission_denied at /users/Vp2P1MqKm7ckXqV2Uy3OzTnn6bB3/meetings/-KT5tqMYKXsFssmcRLm6/checkins: Client doesn't have permission to access the desired data.
Und das ist es, was ich zu erreichen versuche.
Gehen Sie zur Firebase-Konsole Ihrer App
Wählen Sie Datenbank über Seitenmenü -> Regel auswählen aus den Registerkarten oben -> Aktualisieren Sie Ihre Regel auf diese Weise
{
"rules": {
".read": true,
".write": true
}
}
hoffe es löst dein problem. Vielen Dank :)
Es scheint, dass die/users/{uid} -Routen beschrieben werden können, aber nicht gelesen werden können. Ich habe/user zu/userx geändert und es fing sofort an zu arbeiten.
Firebase-Projekt startet standardmäßig mit Firestore als Datenbank.
Dieses Problem kann auftreten, wenn die Anwendung "Firebase-Echtzeitdatenbank" verwendet und die Berechtigung dafür nicht konfiguriert ist. Die Lese- und Schreibberechtigung für die Firebase-Echtzeitdatenbank sollte explizit erteilt werden.
Wählen Sie dazu in der Firebase-Konsole Datenbank> Wählen Sie "Echtzeitdatenbank" anstelle von "Firestore Beta" aus der Dropdownliste neben Datenbank> Regeln> Festlegen
{
/* Visit https://firebase.google.com/docs/database/security to learn more about security rules. */
"rules": {
".read": true,
".write": true
}
}
Hoffe das hilft!