Otrzymuję błąd
uzyskiwaniedocuments.com.google.firebase.firestore.FirebaseFirestoreException: PERMISSION_DENIED: brak uprawnień lub niewystarczające uprawnienia.
dla poniższego kodu w instrukcji 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());
}
}
});
android
firebase
google-cloud-firestore
S Rekhu
źródło
źródło
Odpowiedzi:
U mnie to po prostu działa.
Przejdź do Bazy danych -> Reguły ->
Zmień
allow read, write: if
fałsz; do prawdy;źródło
Idź do Baza danych -> Reguły :
Następnie zmieniono poniżej zasady
poniżej
źródło
Więc w moim przypadku miałem następujące zasady DB:
Jak widać
uid
nastory
dokumencie znajduje się pole do oznaczenia właściciela.Następnie w swoim kodzie odpytywałem wszystkie historie (Flutter):
I nie udało się, ponieważ dodałem już kilka historii za pośrednictwem różnych użytkowników. Aby to naprawić, musisz dodać warunek do zapytania:
Więcej szczegółów tutaj: https://firebase.google.com/docs/firestore/security/rules-query
EDYCJA: z linku
źródło
Powyższe głosowane odpowiedzi są niebezpieczne dla zdrowia Twojej bazy danych. Nadal możesz udostępnić swoją bazę danych tylko do czytania, a nie do pisania:
źródło
Jeśli spróbujesz w aplikacji Java Swing.
Idź do
Firebase Console
>Project Overview
>Project Settings
Następnie przejdź do zakładki Service Accounts, a następnie kliknij Generate New Private Key.
Otrzymasz plik .json, umieść go w znanej ścieżce
Następnie przejdź do Właściwości mojego komputera, Zaawansowane ustawienia systemu, Zmienne środowiskowe.
Utwórz nową
GOOGLE_APPLICATION_CREDENTIALS
wartość zmiennej ścieżki ze ścieżką do pliku JSON.źródło
npm i --save firebase @ angular / fire
w module app.module upewnij się, że został zaimportowany
w imporcie
w regułach bazy danych czasu rzeczywistego upewnij się, że masz
w regułach Cloud Firestore upewnij się, że masz
źródło
upewnij się, że twoja baza danych nie jest pusta, ani twoje zapytanie nie dotyczy kolekcji, której nie ma
źródło
Dodatkowo możesz otrzymać ten błąd, jeśli odwołanie do kolekcji w Twoim kodzie nie pasuje do nazwy kolekcji w Firebase.
Na przykład nazwa kolekcji w firebase to
users
, ale odwołujesz się do niej za pomocądb.collection("Users")
lubdb.collection("user")
Rozróżniana jest również wielkość liter.
Mam nadzieję, że to komuś pomoże
źródło
add
lubset
, ale z pytania jest toget
żądanie. Doświadczyłem tego już wcześniejSprawdź, czy konto usługi zostało dodane na
IAM & Admin
https://console.cloud.google.com/iam-admin/iam z odpowiednią rolą, taką jak Redaktorźródło
Jeśli ktoś wyląduje tutaj, próbując uzyskać dostęp do Firestore za pomocą konta usługi:
Rozwiązałem ten problem, przyznając kontu usługi
Service Account User
rolę opróczCloud Datastore User
roli w ustawieniach uprawnień GCP.źródło
Obecnie, czerwiec 2020 r., Domyślnie firebase jest definiowany według czasu. Określ czas, w którym spełnisz swoje potrzeby.
Uwaga: Twoja baza danych nadal jest otwarta dla każdego. Proponuję zapoznać się z dokumentacją i skonfigurować DB w sposób, który jest dla Ciebie przydatny.
źródło
problem polega na tym, że próbowałeś odczytać lub zapisać dane w bazie danych czasu rzeczywistego lub w magazynie firestore, zanim użytkownik zostanie uwierzytelniony. spróbuj sprawdzić zakres swojego kodu. mam nadzieję, że pomogło!
źródło
Miałem ten błąd z administratorem Firebase, rozwiązaniem było poprawne skonfigurowanie administratora Firebase, korzystając z tego linku
źródło
Dla mnie był to problem z datą. Zaktualizowałem go i problem został rozwiązany.
Zezwalaj na odczyt / zapis:
Edycja: jeśli nadal jesteś zdezorientowany i nie możesz dowiedzieć się, na czym polega problem, po prostu zapoznaj się z sekcją reguł w konsoli Firebase.
źródło
termin może się skończyć
tam zmienić datę dzisiaj w tej linii:
źródło
źródło
https://console.firebase.google.com
Develop -> Database -> Rules -> set read, write -> true
źródło
Twoje zasady powinny być takie w tym przypadku, jednak komunikat mówi, że nie jest to sugerowany sposób, ale jeśli to zrobisz, możesz zrobić wstawienia bez błędu uprawnień
źródło