J'obtiens l'erreur
gettingdocuments.com.google.firebase.firestore.FirebaseFirestoreException: PERMISSION_DENIED: autorisations manquantes ou insuffisantes.
pour le code ci-dessous sur l'instruction else
db.collection("users")
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (DocumentSnapshot document : task.getResult()) {
s(document.getId() + " => " + document.getData());
}
} else {
s("Error getting documents."+ task.getException());
}
}
});
Réponses:
Cela fonctionne simplement pour moi.
Allez dans la base de données -> Règles ->
Changer
allow read, write: if
faux; à vrai;la source
Allez dans Base de données -> Règles :
Puis changé ci-dessous les règles
en dessous
la source
Donc, dans mon cas, j'avais les règles DB suivantes:
Comme vous pouvez le voir, il y a un
uid
champ sur lestory
document pour marquer le propriétaire.Ensuite, dans mon code, j'interrogeais toutes les histoires (Flutter):
Et cela a échoué car j'ai déjà ajouté des histoires via différents utilisateurs. Pour résoudre ce problème, vous devez ajouter une condition à la requête:
Plus de détails ici: https://firebase.google.com/docs/firestore/security/rules-query
EDIT: à partir du lien
la source
Les réponses votées ci-dessus sont dangereuses pour la santé de votre base de données. Vous pouvez toujours rendre votre base de données disponible uniquement pour la lecture et non pour l'écriture:
la source
Si vous essayez dans Java Swing Application.
Aller à
Firebase Console
>Project Overview
>Project Settings
Ensuite, allez dans l'onglet Comptes de service, puis cliquez sur Générer une nouvelle clé privée.
Vous obtiendrez un fichier .json, placez-le dans un chemin connu
Ensuite, allez dans les propriétés de mon ordinateur, les paramètres système avancés, les variables d'environnement.
Créez une nouvelle
GOOGLE_APPLICATION_CREDENTIALS
valeur de variable de chemin avec votre chemin vers le fichier json.la source
npm i --save firebase @ angular / fire
dans app.module, assurez-vous d'avoir importé
en importations
dans les règles de base de données en temps réel, assurez-vous d'avoir
dans les règles Cloud Firestore, assurez-vous d'avoir
la source
assurez-vous que votre base de données n'est pas vide ni que votre requête concerne une collection qui n'existe pas
la source
En outre, vous pouvez obtenir cette erreur si la référence de collection de votre code ne correspond pas au nom de la collection sur Firebase.
Par exemple, le nom de la collection sur Firebase est
users
, mais votre référence avecdb.collection("Users")
oudb.collection("user")
Il est également sensible à la casse.
J'espère que cela aide quelqu'un
la source
add
ouset
, mais à partir de la question, c'est uneget
demande. J'ai déjà fait l'expérience de celaVérifiez si le compte de service est ajouté dans
IAM & Admin
https://console.cloud.google.com/iam-admin/iam avec un rôle approprié tel que Editorla source
Si quelqu'un atterrit ici pour essayer d'accéder à Firestore avec un compte de service:
J'ai résolu ce problème en accordant au compte de service le
Service Account User
rôle en plus duCloud Datastore User
rôle dans les paramètres IAM de GCP.la source
En ce moment, juin 2020, par défaut, la base de feu est définie par l'heure. Définissez le temps pour répondre à vos besoins.
Attention: votre base de données est toujours ouverte à tous. Je suggère de lire la documentation et de configurer la base de données de la manière qui vous est utile.
la source
le problème est que vous avez essayé de lire ou d'écrire des données dans la base de données en temps réel ou le firestore avant que l'utilisateur ne soit authentifié. veuillez essayer de vérifier la portée de votre code. espérons que cela a aidé!
la source
J'ai eu cette erreur avec Firebase Admin, la solution a été de configurer correctement Firebase Admin en suivant ce lien
la source
Pour moi, c'était le problème de la date. Mis à jour et le problème a été résolu.
Autoriser la lecture / écriture:
Edit: Si vous êtes toujours confus et incapable de comprendre quel est le problème, jetez simplement un œil à la section des règles de votre console Firebase.
la source
le délai est peut-être dépassé
il y a changement de date pour aujourd'hui dans cette ligne:
la source
la source
https://console.firebase.google.com
Développer -> Base de données -> Règles -> définir lire, écrire -> true
la source
Vos règles devraient être comme ça dans ce cas, mais le message indique que ce n'est pas la méthode suggérée, mais si vous faites cela, vous pouvez faire des insertions sans erreur d'autorisation
la source