Na tej stronie znajdziesz pomoc w rozwiązywaniu problemów oraz odpowiedzi na najczęstsze pytania dotyczące korzystania z Firebase Authentication. Jeśli nie możesz znaleźć tego, czego szukasz, lub potrzebujesz dodatkowej pomocy, skontaktuj się z zespołem pomocy Firebase.
W których regionach jest obsługiwane uwierzytelnianie za pomocą telefonu?
Firebase Authentication obsługuje weryfikację numeru telefonu na całym świecie, ale nie wszystkie sieci niezawodnie dostarczają wiadomości weryfikacyjne. W tych regionach odsetek dostarczonych wiadomości jest wysoki, więc uwierzytelnianie telefoniczne powinno działać prawidłowo. W niektórych regionach niektórzy przewoźnicy są niedostępni z powodu niskiego odsetka dostaw.
| Region | Kod |
|---|---|
| REKLAMA | Andora |
| AE | Zjednoczone Emiraty Arabskie |
| AF | Afganistan |
| AG | Antigua i Barbuda |
| AL | Albania |
| AM | Armenia |
| AO | Angola |
| AR | Argentyna |
| AS | Samoa Amerykańskie |
| AT | Austria |
| AU | Australia |
| AW | Aruba |
| AZ | Azerbejdżan |
| BA | Bośnia i Hercegowina |
| BB | Barbados |
| BD | Bangladesz |
| BE | Belgia |
| BF | Burkina Faso |
| BG | Bułgaria |
| BJ | Benin |
| BM | Bermudy |
| BN | Brunei |
| BO | Boliwia |
| BR | Brazylia |
| BS | Bahamy |
| BT | Bhutan |
| BW | Botswana |
| BY | Białoruś |
| BZ | Belize |
| Urząd certyfikacji | Kanada |
| CD | Kongo (Kinszasa) |
| CF | Republika Środkowoafrykańska |
| CG | Kongo (Brazzaville) |
| CH | Szwajcaria |
| CI | Wybrzeże Kości Słoniowej |
| CK | Wyspy Cooka |
| Lista zmian | Chile |
| CM | Kamerun |
| CO | Kolumbia |
| CR | Kostaryka |
| CV | Republika Zielonego Przylądka |
| CW | Curaçao |
| CY | Cypr |
| CZ | Czechy |
| DE | Niemcy |
| DJ | Dżibuti |
| DK | Dania |
| DM | Dominika |
| TAK | Dominikana |
| DZ | Algieria |
| EC | Ekwador |
| EG | Egipt |
| ES | Hiszpania |
| ET | Etiopia |
| FI | Finlandia |
| FJ | Fidżi |
| KO | Falklandy (Malwiny) |
| FM | Mikronezja |
| FO | Wyspy Owcze |
| FR | Francja |
| OD | Gabon |
| GB | Wielka Brytania |
| RB | Grenada |
| GE | Gruzja |
| BZ | Gujana Francuska |
| GG | Wyspa Guernsey |
| GH | Ghana |
| GI | Gibraltar |
| GL | Grenlandia |
| GM | Gambia |
| RM | Gwadelupa |
| GQ | Gwinea Równikowa |
| GR | Grecja |
| GT | Gwatemala |
| GY | Gujana |
| HK | Hongkong, Specjalny Region Administracyjny Chińskiej Republiki Ludowej |
| HN | Honduras |
| HR | Chorwacja |
| przerwa | Haiti |
| jednostka główna | Węgry |
| Identyfikator | Indonezja |
| IE | Irlandia |
| IL | Izrael |
| IM | Wyspa Man |
| IN | Indie |
| IQ | Irak |
| IT | Włochy |
| JE | Jersey |
| JM | Jamajka |
| JO | Jordania |
| JP | Japonia |
| KE | Kenia |
| Graf wiedzy | Kirgistan |
| KH | Kambodża |
| KM | Komory |
| KN | Saint Kitts i Nevis |
| KR | Korea Południowa |
| KW | Kuwejt |
| KY | Kajmany |
| KZ | Kazachstan |
| LA | Laotańska Republika Ludowo-Demokratyczna |
| System równoważenia obciążenia | Liban |
| LC | Saint Lucia |
| LI | Liechtenstein |
| LK | Sri Lanka |
| LS | Lesotho |
| LT | Litwa |
| LU | Luksemburg |
| LV | Łotwa |
| LY | Libia |
| MA | Maroko |
| MD | Mołdawia |
| Bliski Wschód | Czarnogóra |
| MF | Saint-Martin (część francuska) |
| MG | Madagaskar |
| MK | Macedonia, Republika |
| MM | Birma |
| MN | Mongolia |
| MO | Specjalny Region Administracyjny Makau, Chiny |
| MS | Montserrat |
| MT | Malta |
| MU | Mauritius |
| MW | Malawi |
| MX | Meksyk |
| MY | Malezja |
| MZ | Mozambik |
| Nie dotyczy | Namibia |
| NC | Nowa Kaledonia |
| NE | Niger |
| NF | Wyspa Norfolk |
| NG | Nigeria |
| NI | Nikaragua |
| NL | Holandia |
| NIE | Norwegia |
| NP | Nepal |
| NZ | Nowa Zelandia |
| OM | Oman |
| PA | Panama |
| PE | Peru |
| PG | Papua-Nowa Gwinea |
| PH | Filipiny |
| KP | Pakistan |
| PL | Polska |
| PM | Saint-Pierre i Miquelon |
| PR | Portoryko |
| PS | Terytorium Palestyńskie |
| PT | Portugalia |
| PY | Paragwaj |
| QA | Katar |
| RE | Reunion |
| RO | Rumunia |
| RS | Serbia |
| RU | Rosja |
| RW | Rwanda |
| SA | Arabia Saudyjska |
| SC | Seszele |
| SE | Szwecja |
| SG | Singapur |
| Rzuty karne | Wyspa Świętej Heleny |
| SI | Słowenia |
| SK | Słowacja |
| SL | Sierra Leone |
| SN | Senegal |
| SR | Surinam |
| ST | Wyspy Świętego Tomasza i Książęca |
| SV | Salwador |
| SZ | Suazi |
| TC | Turks i Caicos |
| TG | Togo |
| TH | Tajlandia |
| kierownik zespołu | Timor Wschodni |
| Znak towarowy | Turkmenistan |
| DO | Tonga |
| TR | Turcja |
| TT | Trynidad i Tobago |
| TW | Tajwan, Republika Chińska |
| TZ | Tanzania |
| UA | Ukraina |
| UG | Uganda |
| US | Stany Zjednoczone |
| UY | Urugwaj |
| UZ | Uzbekistan |
| VC | Saint Vincent i Grenadyny |
| VE | Wenezuela (Republika Boliwariańska) |
| VG | Brytyjskie Wyspy Dziewicze |
| VI | Wyspy Dziewicze Stanów Zjednoczonych |
| VN | Wietnam |
| WS | Samoa |
| YE | Jemen |
| YT | Majotta |
| ZA | Republika Południowej Afryki |
| ZM | Zambia |
| ZW | Zimbabwe |
Co się stało z bezpłatnymi SMS-ami w ramach abonamentu Spark?
Od września 2024 r. w celu zwiększenia bezpieczeństwa i jakości usługi uwierzytelniania telefonicznego projekty Firebase muszą być połączone z Cloud Billingkontem, aby można było włączyć i używać usługi SMS.
Jak mogę zapobiec nadużyciom SMS-ów podczas korzystania z uwierzytelniania telefonicznego?
Aby chronić projekt przed oszustwami z użyciem SMS-ów i nadużyciami interfejsów API, wykonaj te czynności:
Rozważ skonfigurowanie zasad dotyczących regionów SMS
Wyświetl wykorzystanie SMS-ów w regionie
Wyszukaj regiony, w których wysłano bardzo dużo SMS-ów, a zweryfikowano bardzo mało SMS-ów (lub zero). Stosunek zweryfikowanych adresów do wysłanych to wskaźnik sukcesu. Odsetek udanych dostarczeń zwykle wynosi 70–85%, ponieważ SMS-y nie są protokołem gwarantującym dostarczenie, a w niektórych regionach może dochodzić do nadużyć. Wskaźniki sukcesu poniżej 50% oznaczają, że wysłano wiele SMS-ów, ale tylko niewielka liczba logowań zakończyła się powodzeniem. Jest to typowy wskaźnik działań nieuczciwych podmiotów i sztucznego zwiększania ruchu SMS-owego.
Użyj zasad dotyczących regionów SMS-ów, aby odrzucać regiony SMS-ów o niskim współczynniku powodzenia lub zezwalać tylko na określone regiony, jeśli aplikacja jest przeznaczona do dystrybucji tylko na określonych rynkach.
Ograniczanie autoryzowanych domen uwierzytelniania
Do zarządzania autoryzowanymi domenami używaj panelu ustawień uwierzytelniania. Domena localhost jest domyślnie dodawana do zatwierdzonych domen uwierzytelniania, aby uprościć proces tworzenia. Rozważ usunięcie domeny localhost z autoryzowanych domen w projekcie produkcyjnym, aby uniemożliwić osobom niepowołanym uruchamianie kodu w ich domenie localhost w celu uzyskania dostępu do projektu produkcyjnego.
Włączanie i wymuszanie App Check
Włącz App Check, aby chronić projekt przed nadużywaniem interfejsów API. Dzięki temu będziesz mieć pewność, że żądania pochodzą tylko z aplikacji powiązanych z Twoim projektem.
Aby korzystać z App Check w Firebase Authentication, musisz przejść na Firebase Authentication with Identity Platform.
Pamiętaj, że musisz wymusić App Check w przypadku Authentication w Firebase konsoli (przed wymuszeniem rozważ monitorowanie ruchu). Sprawdź też listę zatwierdzonych witryn reCAPTCHA Enterprise, aby upewnić się, że zawiera ona tylko witryny produkcyjne, a lista aplikacji zarejestrowanych w projekcie w App Check jest prawidłowa.
Pamiętaj, że App Check pomaga chronić przed automatycznymi atakami, potwierdzając, że połączenie pochodzi z jednej z zarejestrowanych aplikacji. Nie uniemożliwia użytkownikom korzystania z aplikacji w niezamierzony sposób (np. rozpoczynania i nigdy niekończenia procesów logowania w celu generowania wysłanych SMS-ów).
Czy numery telefonów przeniesione do nowego operatora są obsługiwane przez uwierzytelnianie za pomocą telefonu?
W tym czasie numery przeniesione między operatorami spowodują, że wszystkie SMS-y staną się niedostępne dla tych użytkowników. Nie ma obejścia tego problemu, a zespół Firebase pracuje nad jego rozwiązaniem.
Dlaczego w mojej aplikacji na Androida pojawia się ten błąd:
Google sign in failed ?
Google sign in failedJeśli widzisz ten błąd, wykonaj instrukcje zawarte w tym artykule z odpowiedziami na najczęstsze pytania:
GoogleFragment: Google sign in failed
com.google.android.gms.common.api.ApiException: 13: Unable to get token.
at
com.google.android.gms.internal.auth-api.zbay.getSignInCredentialFromIntent(com.google.android.gms:play-services-auth@@20.3.0:6)
Sprawdź, czy logowanie Google jest prawidłowo włączone jako dostawca uwierzytelniania:
W konsoli Firebase otwórz Authentication sekcję.
Na karcie Metoda logowania wyłącz, a potem ponownie włącz metodę logowania Google (nawet jeśli jest już włączona):
Otwórz metodę logowania Google, wyłącz ją i kliknij Zapisz.
Otwórz ponownie metodę logowania Google, włącz ją, a następnie kliknij Zapisz.
Upewnij się, że Twoja aplikacja używa aktualnego pliku konfiguracyjnego Firebase (
google-services.json).
Pobierz plik konfiguracyjny aplikacji.Sprawdź, czy błąd nadal występuje. Jeśli tak, przejdź do następnego kroku rozwiązywania problemu.
Sprawdź, czy wymagani klienci OAuth 2.0 są obecni.
Na stronie Dane logowania w konsoli Google Cloud znajdź sekcję Identyfikatory klienta OAuth 2.0.
Jeśli klientów OAuth 2.0 nie ma (i wykonano wszystkie powyższe czynności), skontaktuj się z zespołem pomocy.
Dlaczego w mojej aplikacji na platformę Apple pojawia się ten błąd:
You must specify <clientID> in <GIDConfiguration> ?
You must specify <clientID> in <GIDConfiguration>Jeśli widzisz ten błąd, wykonaj instrukcje zawarte w tym artykule z odpowiedziami na najczęstsze pytania:
You must specify |clientID| in |GIDConfiguration|
Sprawdź, czy logowanie Google jest prawidłowo włączone jako dostawca uwierzytelniania:
W konsoli Firebase otwórz Authentication sekcję.
Na karcie Metoda logowania wyłącz, a potem ponownie włącz metodę logowania Google (nawet jeśli jest już włączona):
Otwórz metodę logowania Google, wyłącz ją i kliknij Zapisz.
Otwórz ponownie metodę logowania Google, włącz ją, a następnie kliknij Zapisz.
Upewnij się, że Twoja aplikacja używa aktualnego pliku konfiguracyjnego Firebase (
GoogleService-Info.plist).
Pobierz plik konfiguracyjny aplikacji.Sprawdź, czy błąd nadal występuje. Jeśli tak, przejdź do następnego kroku rozwiązywania problemu.
Sprawdź, czy wymagani klienci OAuth 2.0 są obecni.
Na stronie Dane logowania w konsoli Google Cloud znajdź sekcję Identyfikatory klienta OAuth 2.0.
Jeśli klientów OAuth 2.0 nie ma (i wykonano wszystkie powyższe czynności), skontaktuj się z zespołem pomocy.
Dlaczego w mojej aplikacji internetowej pojawia się ten błąd:
AuthErrorCode.INVALID_OAUTH_CLIENT_ID ?
AuthErrorCode.INVALID_OAUTH_CLIENT_IDJeśli widzisz ten błąd, wykonaj instrukcje zawarte w tym artykule z odpowiedziami na najczęstsze pytania:
AuthErrorCode.INVALID_OAUTH_CLIENT_ID
Sprawdź, czy logowanie Google jest prawidłowo włączone jako dostawca uwierzytelniania:
W konsoli Firebase otwórz Authentication sekcję.
Na karcie Metoda logowania wyłącz, a potem ponownie włącz metodę logowania Google (nawet jeśli jest już włączona):
Otwórz metodę logowania Google, wyłącz ją i kliknij Zapisz.
Otwórz ponownie metodę logowania Google, włącz ją, a następnie kliknij Zapisz.
W sekcji Authentication konfiguracji dostawcy logowania Google sprawdź też, czy identyfikator klienta OAuth i tajny klucz klienta pasują do klienta internetowego wyświetlanego na stronie Dane logowania w konsoli Google Cloud (w sekcji Identyfikatory klientów OAuth 2.0).
Dlaczego w mojej aplikacji internetowej logowanie z przekierowaniami kończy się niepowodzeniem i wyświetla się ten błąd:
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operation ?
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operationJeśli widzisz ten błąd, wykonaj instrukcje zawarte w tym artykule z odpowiedziami na najczęstsze pytania:
This domain YOUR_REDIRECT_DOMAIN is not authorized to run this operation.
Ten błąd jest najprawdopodobniej spowodowany tym, że domena przekierowania nie jest wymieniona jako autoryzowana domena w przypadku Firebase Authentication lub klucz API używany w usłudze Firebase Authentication jest nieprawidłowy.
Najpierw sprawdź, czy YOUR_REDIRECT_DOMAIN znajduje się na liście autoryzowanych domen w projekcie w Firebase. Jeśli domena przekierowania jest już na liście, przejdź do rozwiązywania problemu z nieprawidłowym kluczem interfejsu API.
Domyślnie pakiet SDK JavaScript korzysta z klucza interfejsu API projektu Firebase oznaczonego jako Browser key. Używa go do weryfikowania, czy adres URL przekierowania logowania jest prawidłowy zgodnie z listą autoryzowanych domen.Firebase Authentication
Authentication uzyskuje ten klucz interfejsu API w zależności od sposobu dostępu do pakietu Authentication SDK:
Jeśli do logowania użytkowników za pomocą Authentication pakietu SDK JS używasz Hostingpomocników uwierzytelniania udostępnianych przez Firebase, Firebase automatycznie pobiera klucz interfejsu API wraz z pozostałą częścią konfiguracji Firebase za każdym razem, gdy wdrażasz aplikację w Firebase Hosting. Upewnij się, że
authDomainaplikacja internetowafirebaseConfigjest prawidłowo skonfigurowana do korzystania z jednej z domen Hosting witryny. Możesz to sprawdzić, przechodząc dohttps://authDomain__/firebase/init.jsoni upewniając się, żeprojectIdjest zgodny z tym zfirebaseConfig.Jeśli samodzielnie hostujesz kod logowania, możesz użyć pliku
__/firebase/init.json, aby przekazać konfigurację Firebase do samodzielnie hostowanego narzędzia pomocniczego przekierowania pakietu SDK Authentication JS. Klucz API iprojectIdwymienione w tym pliku konfiguracji powinny być zgodne z aplikacją internetowąfirebaseConfig.
Sprawdź, czy ten klucz interfejsu API nie został usunięty: w Google Cloud konsoli otwórz panel Interfejsy API i usługi > Dane logowania, w którym są wymienione wszystkie klucze interfejsu API w Twoim projekcie.
Jeśli
Browser keynie został usunięty, sprawdź:Upewnij się, że Firebase Authentication API znajduje się na liście dozwolonych interfejsów API, do których klucz ma dostęp (więcej informacji o ograniczeniach interfejsów API dotyczących kluczy interfejsu API).
Jeśli samodzielnie hostujesz kod logowania, upewnij się, że klucz interfejsu API wymieniony w pliku
__/firebase/init.jsonjest zgodny z kluczem interfejsu API w konsoli Google Cloud. W razie potrzeby popraw klucz w pliku, a następnie ponownie wdróż aplikację.Jeśli klucz API
Browser keyzostał usunięty, Firebase może wygenerować nowy klucz API: w konsoli Firebase kliknij kolejnosettings > Ustawienia projektu , a następnie w sekcji Twoje aplikacje kliknij aplikację internetową. Spowoduje to automatyczne utworzenie klucza API, który będzie widoczny w sekcji Konfiguracja pakietu SDK w przypadku Twojej aplikacji internetowej.
Pamiętaj, że w Google Cloud konsoli ten nowy klucz interfejsu API nie będzie się nazywać
Browser key. Będzie miał taką samą nazwę jak pseudonim aplikacji internetowej Firebase. Jeśli zdecydujesz się dodać ograniczenia interfejsu API do tego nowego klucza, upewnij się, że interfejs API Firebase Authentication znajduje się na liście dozwolonych interfejsów API.Po utworzeniu nowego klucza interfejsu API wykonaj odpowiednie czynności poniżej:
Jeśli używasz zarezerwowanych adresów URL, wdróż ponownie aplikację w Firebase, aby mogła automatycznie uzyskać nowy klucz interfejsu API wraz z pozostałą częścią konfiguracji Firebase.Hosting
Jeśli samodzielnie hostujesz kod logowania, skopiuj nowy klucz interfejsu API i dodaj go do pliku
__/firebase/init.json, a następnie ponownie wdróż aplikację.
Jak ręcznie utworzyć klienta usługi internetowej OAuth?
Otwórz stronę Dane logowania w konsoli Google Cloud.
U góry strony wybierz Utwórz dane logowania > Identyfikator klienta OAuth.
Jeśli pojawi się prośba o skonfigurowanie ekranu zgody, postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, a następnie wykonaj kolejne czynności opisane w tym artykule z odpowiedziami na najczęstsze pytania.
Utwórz klienta usługi internetowej OAuth:
Jako Typ aplikacji wybierz Aplikacja internetowa.
W polu Autoryzowane źródła JavaScriptu dodaj te informacje:
http://localhosthttp://localhost:5000https://PROJECT_ID.firebaseapp.comhttps://PROJECT_ID.web.app
W sekcji Autoryzowane identyfikatory URI przekierowania dodaj te informacje:
https://PROJECT_ID.firebaseapp.com/__/auth/handlerhttps://PROJECT_ID.web.app/__/auth/handler
Zapisz klienta OAuth.
Skopiuj nowy identyfikator klienta OAuth i tajny klucz klienta do schowka.
W konsoli Firebase otwórz Authentication sekcję.
Na karcie Metoda logowania otwórz dostawcę Logowanie przez Google, a następnie wklej identyfikator klienta serwera internetowego i tajny klucz, które zostały utworzone i skopiowane z Google Cloud konsoli. Kliknij Zapisz.
Jak jest określana wartość %APP_NAME% w szablonie e-maila z potwierdzeniem, który można wysłać do użytkownika, gdy zarejestruje się on za pomocą adresu e-mail i hasła?
Przed grudniem 2022 r. symbol %APP_NAME% w szablonie e-maila był wypełniany nazwą marki OAuth, która była automatycznie udostępniana za każdym razem, gdy w projekcie w Firebase rejestrowano aplikację na Androida. Marka OAuth jest udostępniana tylko wtedy, gdy włączone jest Logowanie przez Google. Poniżej opisujemy, jak określa się wartość %APP_NAME%:
Jeśli nazwa marki OAuth jest dostępna, w szablonie e-maila w miejscu
%APP_NAME%pojawi się nazwa marki OAuth (tak jak przed grudniem 2022 r.).Jeśli nazwa jednostki OAuth nie jest dostępna, wartość
%APP_NAME%w szablonie e-maila jest określana w ten sposób:W przypadku aplikacji internetowych
%APP_NAME%będzie domyślną Firebase Hosting nazwą witryny (wartością poprzedzającą.firebaseapp.comi.web.app, zwykle identyfikatorem projektu w Firebase).W przypadku aplikacji mobilnych:
Jeśli w żądaniu występuje nazwa pakietu na Androida lub identyfikator pakietu na iOS,
%APP_NAME%będzie nazwą aplikacji używaną w Sklepie Play lub App Store (odpowiednio).W przeciwnym razie
%APP_NAME%będzie domyślną Firebase Hostingnazwą witryny (wartością poprzedzającą.firebaseapp.comi.web.app, zwykle identyfikatorem projektu w Firebase).
Pamiętaj, że jeśli wyszukiwanie domyślnej nazwy witryny Firebase Hosting się nie powiedzie, ostatecznym rozwiązaniem zastępczym jest użycie identyfikatora projektu Firebase jako
%APP_NAME%.