6

Dostaję (na Androida):Chmura Firestore: Brak lub niewystarczające uprawnienia

com.google.firebase.firestore.FirebaseFirestoreException: PERMISSION_DENIED: Brak lub niewystarczające uprawnienia

stosując te zabezpieczenia przepisy:

service cloud.firestore { 
    match /databases/{database}/documents { 
    match /{document=**} { 
     allow read, write: if request.auth != null; 
    } 
    } 
} 

Moja aplikacja wydaje się być prawidłowo uwierzytelnione przy użyciu FirebaseAuth, ponieważ mFirebaseAuth.getCurrentUser().getUid() zwraca prawidłowy identyfikator użytkownika.

Czy jest coś, co robię źle?

+1

To też się dzieje. Do wczoraj wszystko działało znaleźć, ale od dzisiaj nadal zwraca błąd uprawnień. Sprawdziłem moje zasady bezpieczeństwa i nic nie jest nie tak. Dziwne zachowanie działa czasami i czasami nie działa z dokładnie tym samym kodem. Naprawiłeś problem? – wonsuc

+0

To zdarza się sporadycznie również w sieci i reaguje natywnie (firebase-ios-sdk). Problem powinien znajdować się w firewallu, a nie na sdk klienta. – sowdri

Odpowiedz

0

Wygląda na to, że jest to problem Firestore (obecnie w wersji beta), a nie po stronie klienta.

1

Zapytałem zespół wsparcia Firebase bezpośrednio, ponieważ ten problem był krytyczny dla naszych usług i otrzymałem poniższy e-mail. Wygląda na to, że naprawili błąd teraz.

Proszę dać mi znać, jeśli problem się powtórzy.

Cześć,

Właśnie potwierdzono z naszych inżynierów, że to sporadyczny problem z naszych przepisów bezpieczeństwa dotyczących FireStore był znany błąd, ale było już stałe dzisiaj. Prosimy ponownie przetestować swoje zasady bezpieczeństwa i poinformuj nas, czy nadal napotykasz problem.

Pozdrawiam, Kevin

2

Edit: prostu chcę powiedzieć, że udało mi się rozwiązać ten problem przez obniżenie do 4.6.2. Mam więcej szczegółów w this post

Pre-edit: to dzieje się ze mną odkąd zmodernizowane reagować rodzimych i nie mogę dla życia mnie dowiedzieć się problem. Mam debugowany go i mój użytkownik jest zdecydowanie poświadczone w chwili złożenia wniosku, sprawdziłem to uruchamiając poniżej i mam uid tam

firebase.auth().currentUser 

Więc następną rzeczą, jaką chciałem zrobić, to sprawdzić sesji w rzeczywistej prośbie, aby zobaczyć, co się dzieje. Dodałem fragment kodu do punktu wejścia mojej aplikacji reagowania i kiedy uruchomię ten kod, magicznie działa ponownie. Jest to delegowanie żądań za pośrednictwem przeglądarki, więc prawdopodobnie nie jest to prawdziwy test.

Więc zacząłem Charlesa i porównałem prośby o moją nową kompilację reagowania z moją starą [działającą] natywną kompilacją. Żądania wyglądają jednak tak samo (poza innym sessionId), więc nie mam pojęcia. Frustrujące jest to, że brakuje narzędzi do debugowania za pośrednictwem konsoli firewall.

Moim zdaniem jest to, że część nagłówków auth wygasła/została zapisana w pamięci podręcznej i że nie jest to sklep firewall.Uderzając moją głową o stół w tym momencie