Ich erhalte den Fehler
Gettingdocuments.com.google.firebase.firestore.FirebaseFirestoreException: PERMISSION_DENIED: Fehlende oder unzureichende Berechtigungen.
für den folgenden Code auf else-Anweisung
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());
}
}
});
android
firebase
google-cloud-firestore
S Rekhu
quelle
quelle
Antworten:
Es funktioniert einfach bei mir.
Gehen Sie in Datenbank -> Regeln ->
allow read, write: if
Falsch ändern ; zu wahr;quelle
Gehen Sie zu Datenbank -> Regeln :
Dann unten Regeln geändert
nach unten
quelle
In meinem Fall hatte ich also die folgenden DB-Regeln:
Wie Sie sehen, befindet sich
uid
auf demstory
Dokument ein Feld, in dem der Eigentümer markiert ist.Dann habe ich in meinem Code alle Geschichten abgefragt (Flutter):
Und es ist fehlgeschlagen, weil ich bereits einige Geschichten über verschiedene Benutzer hinzugefügt habe. Um dies zu beheben, müssen Sie der Abfrage eine Bedingung hinzufügen:
Weitere Details finden Sie hier: https://firebase.google.com/docs/firestore/security/rules-query
BEARBEITEN: über den Link
quelle
Die oben genannten Antworten sind gefährlich für die Gesundheit Ihrer Datenbank. Sie können Ihre Datenbank weiterhin nur zum Lesen und nicht zum Schreiben zur Verfügung stellen:
quelle
Wenn Sie es in Java Swing Application versuchen.
Gehe zu
Firebase Console
>Project Overview
>Project Settings
Gehen Sie dann zur Registerkarte Dienstkonten und klicken Sie dann auf Neuen privaten Schlüssel generieren.
Sie erhalten eine .json-Datei, die Sie in einem bekannten Pfad ablegen
Gehen Sie dann zu Arbeitsplatzeigenschaften, Erweiterte Systemeinstellungen, Umgebungsvariablen.
Erstellen Sie einen neuen Pfadvariablenwert
GOOGLE_APPLICATION_CREDENTIALS
mit Ihrem Pfad zur JSON-Datei.quelle
npm i - save firebase @ angle / fire
Stellen Sie in app.module sicher, dass Sie importiert haben
bei Importen
Stellen Sie in Echtzeit-Datenbankregeln sicher, dass Sie haben
Stellen Sie in Cloud Firestore-Regeln sicher, dass Sie haben
quelle
Stellen Sie sicher, dass Ihre Datenbank nicht leer ist und Ihre Abfrage keine Sammlung enthält, die nicht vorhanden ist
quelle
Außerdem kann dieser Fehler auftreten, wenn die Sammlungsreferenz aus Ihrem Code nicht mit dem Sammlungsnamen in Firebase übereinstimmt.
Zum Beispiel ist der Sammlungsname auf Firebase
users
, aber Sie verweisen mitdb.collection("Users")
oder auf ihndb.collection("user")
Es wird auch zwischen Groß- und Kleinschreibung unterschieden.
Hoffe das hilft jemandem
quelle
add
oderset
Anfrage ist, aber von der Frage ist es eineget
Anfrage. Ich habe das schon einmal erlebtÜberprüfen Sie, ob das Dienstkonto in
IAM & Admin
https://console.cloud.google.com/iam-admin/iam mit einer geeigneten Rolle wie z. B. Editor hinzugefügt wurdequelle
Wenn hier jemand landet und versucht, mit einem Dienstkonto auf Firestore zuzugreifen:
Ich habe dieses Problem gelöst, indem ich dem Dienstkonto
Service Account User
zusätzlich zu derCloud Datastore User
Rolle in den IAM-Einstellungen von GCP die Rolle zugewiesen habe.quelle
Zu diesem Zeitpunkt, Juni 2020, wird die Feuerbasis standardmäßig nach Zeit definiert. Definieren Sie die Zeit, um Ihre Anforderungen zu erfüllen.
quelle
Das Problem ist, dass Sie versucht haben, Daten in eine Echtzeitdatenbank oder einen Firestore zu lesen oder zu schreiben, bevor der Benutzer authentifiziert wurde. Bitte versuchen Sie, den Umfang Ihres Codes zu überprüfen. hoffe es hat geholfen!
quelle
Ich hatte diesen Fehler mit Firebase Admin. Die Lösung bestand darin, den Firebase-Administrator über diesen Link korrekt zu konfigurieren
quelle
Für mich war es das Problem mit dem Datum. Es wurde aktualisiert und das Problem wurde behoben.
Lesen / Schreiben zulassen:
Bearbeiten: Wenn Sie immer noch verwirrt sind und nicht herausfinden können, wo das Problem liegt, lesen Sie einfach den Abschnitt mit den Regeln in Ihrer Firebase-Konsole.
quelle
Das Zeitlimit ist möglicherweise abgelaufen
es gibt Änderungsdatum für heutzutage in dieser Zeile:
quelle
https://console.firebase.google.com
Entwickeln -> Datenbank -> Regeln -> Lesen, Schreiben -> Wahr setzen
quelle
Ihre Regeln sollten für diesen Fall wie folgt aussehen. Die Meldung besagt jedoch, dass dies nicht der vorgeschlagene Weg ist. Wenn Sie dies tun, können Sie Einfügungen ohne Berechtigungsfehler ausführen
quelle