J'ai une page qui appelle la méthode addCheckin()
qui se trouve dans un contrôleur. Dans le contrôleur, j'essaie de créer une référence comme suit:
var ref = firebase.database().ref("users/" + $scope.whichuser + "/meetings/" +$scope.whichmeeting + "/checkins");
$scope.whichuser
et $scope.whichmeeting
sont les $routeParams
que je suis en train de passer d'une autre route ..__ Voici mon contrôleur d'enregistrement -
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*/
Il y a deux erreurs que j'obtiens ici-
Erreur 1:
Error: permission_denied at /users/Vp2P1MqKm7ckXqV2Uy3OzTnn6bB3/meetings: Client doesn't have permission to access the desired data.
Erreur 2:
Error: permission_denied at /users/Vp2P1MqKm7ckXqV2Uy3OzTnn6bB3/meetings/-KT5tqMYKXsFssmcRLm6/checkins: Client doesn't have permission to access the desired data.
Et c’est ce que je cherche à réaliser-
Accédez à la console Firebase de votre application.
Sélectionnez la base de données à partir du menu latéral -> Sélectionnez la règle dans les onglets ci-dessus -> Mettez votre règle à jour comme ceci
{
"rules": {
".read": true,
".write": true
}
}
espérons que cela résoudra votre problème. Merci :)
Il semble que les itinéraires/users/{uid} peuvent être écrits, mais ils ne peuvent pas être lus. J'ai changé/utilisateurs à/userx et il a immédiatement commencé à fonctionner.
Le projet Firebase commence par défaut avec Firestore en tant que base de données.
Ce problème peut survenir si l'application utilise "Base de données en temps réel Firebase" et que les autorisations correspondantes ne sont pas configurées. Les autorisations de lecture et d'écriture pour la base de données Firebase Realtime doivent être explicitement accordées.
Pour ce faire, dans la console Firebase, sélectionnez Base de données> "Base de données temps réel" au lieu de "Bêta Firestore" dans le menu déroulant en regard de Base de données> Règles> Définir
{
/* Visit https://firebase.google.com/docs/database/security to learn more about security rules. */
"rules": {
".read": true,
".write": true
}
}
J'espère que cette aide!