בדף הזה תוכלו למצוא עזרה בפתרון בעיות ותשובות לשאלות נפוצות לגבי השימוש ב-Firebase Authentication. אם לא מצאתם את מה שחיפשתם או שאתם צריכים עזרה נוספת, אתם יכולים לפנות לתמיכה של Firebase.
באילו אזורים אפשר לאמת את החשבון באמצעות הטלפון?
Firebase Authentication תומך באימות מספרי טלפון ברחבי העולם, אבל לא כל הרשתות מעבירות הודעות אימות בצורה מהימנה. באזורים הבאים יש שיעורי מסירה טובים, ולכן אפשר לצפות שהם יתאימו לאימות טלפוני. במקרים מסוימים, ספקים מסוימים לא זמינים באזור מסוים בגלל שיעורי הצלחה נמוכים של מסירת הודעות.
| אזור | קוד |
|---|---|
| לסה״נ | אנדורה |
| AE | איחוד האמירויות הערביות |
| AF | אפגניסטן |
| AG | אנטיגואה וברבודה |
| אלבניה | אלבניה |
| AM | ארמניה |
| AO | אנגולה |
| AR | ארגנטינה |
| AS | סמואה האמריקנית |
| AT | אוסטריה |
| AU | אוסטרליה |
| AW | ארובה |
| AZ | אזרבייג'ן |
| BA | בוסניה והרצגובינה |
| BB | ברבדוס |
| BD | בנגלדש |
| בלגיה | בלגיה |
| BF | בורקינה פאסו |
| BG | בולגריה |
| BJ | בנין |
| BM | ברמודה |
| BN | ברוני דרוסלם |
| BO | בוליביה |
| BR | ברזיל |
| BS | איי הבהאמה |
| BT | בהוטן |
| BW | בוצואנה |
| BY | בלארוס |
| BZ | בליז |
| CA | קנדה |
| CD | קונגו, (קינשאסה) |
| מ' | רפובליקת מרכז אפריקה |
| CG | קונגו (ברזאויל) |
| CH | שווייץ |
| CI | חוף השנהב |
| CK | איי קוק |
| CL | צ'ילה |
| CM | קמרון |
| CO | קולומביה |
| תגובה מוכנה מראש | קוסטה ריקה |
| CV | כף ורדה |
| CW | קוראסאו |
| CY | קפריסין |
| CZ | צ'כיה |
| גרמניה | גרמניה |
| די-ג'יי | ג'יבוטי |
| DK | דנמרק |
| DM | דומיניקה |
| כדאי לעשות | הרפובליקה הדומיניקנית |
| DZ | אלג'יריה |
| EC | אקוודור |
| EG | מצרים |
| ES | ספרד |
| ET | אתיופיה |
| FI | פינלנד |
| FJ | פיג'י |
| FK | איי פוקלנד |
| FM | הפדרציה של מיקרונזיה |
| FO | איי פארו |
| FR | צרפת |
| GA | גאבון |
| GB | בריטניה |
| GD | גרנדה |
| GE | גאורגיה |
| שערים לזכות | גיאנה הצרפתית |
| GG | גרנזי |
| GH | גאנה |
| GI | גיברלטר |
| GL | גרינלנד |
| GM | גמביה |
| GP | גוואדלופ |
| GQ | גיניאה המשוונית |
| GR | יוון |
| GT | גואטמלה |
| GY | גיאנה |
| HK | הונג קונג |
| HN | הונדורס |
| HR | קרואטיה |
| מחצית | האיטי |
| HU | הונגריה |
| מזהה | אינדונזיה |
| IE | אירלנד |
| IL | ישראל |
| IM | האי מאן |
| IN | הודו |
| IQ | עירק |
| IT | איטליה |
| JE | ג'רזי |
| JM | ג'מייקה |
| JO | ירדן |
| JP | יפן |
| KE | קניה |
| KG | קירגיזסטן |
| KH | קמבודיה |
| ק"מ | איי קומורו |
| KN | סנט קיטס ונוויס |
| KR | קוריאה (דרום) |
| KW | כוויית |
| KY | איי קיימן |
| KZ | קזחסטן |
| LA | הרפובליקה הדמוקרטית העממית של לאוס |
| LB | לבנון |
| LC | סנט לוסיה |
| LI | ליכטנשטיין |
| LK | סרי לנקה |
| LS | לסוטו |
| LT | ליטא |
| LU | לוקסמבורג |
| LV | לטביה |
| LY | לוב |
| MA | מרוקו |
| MD | מולדובה |
| ME | מונטנגרו |
| MF | סן מרטן (החלק הצרפתי) |
| MG | מדגסקר |
| MK | מקדוניה, רפובליקה של |
| MM | מיאנמר |
| MN | מונגוליה |
| MO | מקאו, אזור מנהלי מיוחד של סין |
| MS | מונסראט |
| MT | מלטה |
| MU | מאוריציוס |
| MW | מלאווי |
| MX | מקסיקו |
| MY | מלזיה |
| MZ | מוזמביק |
| לא זמין | נמיביה |
| NC | קלדוניה החדשה |
| צפ'-מז' | ניז'ר |
| NF | האי נורפולק |
| NG | ניגריה |
| NI | ניקרגואה |
| NL | הולנד |
| לא | נורווגיה |
| NP | נפאל |
| NZ | ניו זילנד |
| OM | עומאן |
| PA | פנמה |
| PE | פרו |
| PG | פפואה גינאה החדשה |
| מ' | הפיליפינים |
| PK | פקיסטן |
| PL | פולין |
| PM | סנט פייר ומיקלון |
| PR | פוארטו ריקו |
| PS | הרשות הפלסטינית |
| PT | פורטוגל |
| PY | פרגוואי |
| QA | קטאר |
| RE | ראוניון |
| RO | רומניה |
| RS | סרביה |
| RU | רוסיה |
| RW | רואנדה |
| SA | ערב הסעודית |
| SC | איי סיישל |
| SE | שוודיה |
| SG | סינגפור |
| פנדלים | סנט הלנה |
| SI | סלובניה |
| SK | סלובקיה |
| SL | סיירה לאון |
| SN | סנגל |
| SR | סורינאם |
| ST | סאו טומה ופרינסיפה |
| SV | אל סלבדור |
| SZ | סווזילנד |
| TC | איי טורקס וקאיקוס |
| TG | טוגו |
| TH | תאילנד |
| TL | מזרח טימור |
| סימן מסחרי | טורקמניסטן |
| אב | טונגה |
| TR | טורקיה |
| TT | טרינידד וטובגו |
| TW | טייוואן, הרפובליקה של סין |
| TZ | הרפובליקה המאוחדת של טנזניה |
| UA | אוקראינה |
| UG | אוגנדה |
| ארה"ב | United States of America |
| UY | אורוגוואי |
| UZ | אוזבקיסטן |
| VC | סנט וינסנט והגרנדינים |
| VE | ונצואלה (הרפובליקה הבוליברית) |
| VG | איי הבתולה הבריטיים |
| VI | איי הבתולה, ארה״ב |
| VN | וייטנאם |
| WS | סמואה |
| YE | תימן |
| YT | מאיוט |
| ZA | דרום אפריקה |
| ZM | זמביה |
| ZW | זימבבואה |
מה קרה ל-SMS ללא עלות במינוי Spark בתשלום קבוע?
החל מספטמבר 2024, כדי לשפר את האבטחה ואת איכות השירות של אימות באמצעות טלפון, פרויקטים ב-Firebase צריכים להיות מקושרים לחשבון Cloud Billing כדי להפעיל את שירות ה-SMS ולהשתמש בו.
איך אפשר למנוע שימוש לרעה ב-SMS כשמשתמשים באימות טלפוני?
כדי להגן על הפרויקט מפני ניפוח תנועת SMS וניצול לרעה של API, צריך לבצע את הפעולות הבאות:
כדאי להגדיר מדיניות לגבי אזורים גיאוגרפיים לאחסון נתונים ב-SMS
איך רואים את השימוש ב-SMS לפי אזור
מחפשים אזורים עם מספר גבוה מאוד של הודעות SMS שנשלחו ומספר נמוך מאוד (או אפס) של הודעות SMS מאומתות. היחס בין מספר האימותים למספר ההודעות שנשלחו הוא שיעור ההצלחה שלכם. שיעורי הצלחה תקינים הם בדרך כלל בטווח של 70-85%, כי SMS הוא לא פרוטוקול מסירה מובטח, ובאזורים מסוימים עלולות להיות בעיות של שימוש לרעה. שיעורי הצלחה נמוכים מ-50% מעידים על שליחת הודעות SMS רבות אבל על מספר קטן של התחברויות מוצלחות. זהו סימן נפוץ לשימוש לרעה ולניפוח תנועת SMS.
אפשר להשתמש במדיניות בנושא אזורי SMS כדי לדחות אזורי SMS עם שיעורי הצלחה נמוכים, או לאפשר רק אזורים מסוימים אם האפליקציה מיועדת להפצה רק בשווקים מסוימים.
הגבלת הדומיינים המורשים לאימות
אפשר להשתמש בלוח הבקרה של הגדרות האימות כדי לנהל דומיינים מורשים. הדומיין localhost מתווסף כברירת מחדל לדומיינים המאושרים לאימות כדי לפשט את הפיתוח. כדי למנוע מגורמים זדוניים להריץ קוד ב-localhost שלהם כדי לגשת לפרויקט הייצור, מומלץ להסיר את localhost מהדומיינים המורשים בפרויקט הייצור.
הפעלה ואכיפה של App Check
מפעילים את App Check כדי להגן על הפרויקט מפני ניצול לרעה של ממשקי API. הפעלת התכונה מאשרת שהבקשות מגיעות רק מאפליקציות שמשויכות לפרויקט.
כדי להשתמש ב-App Check עם Firebase Authentication, צריך לשדרג ל-Firebase Authentication with Identity Platform.
חשוב לזכור שצריך לאכוף את App Check עבור Authentication במסוף Firebase (מומלץ לעקוב אחרי התנועה לפני האכיפה). בנוסף, כדאי לבדוק שוב את רשימת האתרים המאושרים ב-reCAPTCHA Enterprise כדי לוודא שהיא כוללת רק את אתרי הייצור שלכם, ושהרשימה של האפליקציות שרשומות לפרויקט ב-App Check מדויקת.
שימו לב שהפרמטר App Check עוזר להגן מפני מתקפות אוטומטיות על ידי אישור שהקריאה מגיעה מאחת מהאפליקציות הרשומות שלכם. היא לא מונעת מהמשתמשים להשתמש באפליקציה שלך בדרכים לא מכוונות (לדוגמה, להתחיל תהליכי התחברות ואז לא לסיים אותם כדי ליצור הודעות SMS שנשלחות).
האם יש תמיכה באימות טלפוני של מספרי טלפון שמועברים לספק חדש?
בשלב הזה, אם מספרים יועברו בין ספקי תקשורת, כל הודעות ה-SMS לא יועברו למשתמשי הקצה האלה. אין פתרון עקיף, וצוות Firebase פועל כדי לפתור את הבעיה.
למה אני מקבל את השגיאה הבאה באפליקציה שלי ל-Android:
Google sign in failed ?
Google sign in failedאם אתם מקבלים את השגיאה הבאה, כדאי לפעול לפי השלבים לפתרון בעיות שמפורטים בתשובות לשאלות הנפוצות:
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)
מוודאים שהכניסה באמצעות Google מופעלת בצורה תקינה כספק אימות:
במסוף Firebase, פותחים את הקטע Authentication.
בכרטיסייה שיטת התחברות, משביתים את שיטת ההתחברות Google ואז מפעילים אותה מחדש (גם אם היא כבר מופעלת):
פותחים את שיטת הכניסה Google, משביתים אותה ולוחצים על שמירה.
פותחים מחדש את שיטת הכניסה Google, מפעילים אותה ולוחצים על שמירה.
מוודאים שהאפליקציה משתמשת בקובץ ההגדרות העדכני של Firebase (
google-services.json).
איך מקבלים את קובץ ההגדרות של האפליקציהבודקים אם השגיאה עדיין מופיעה. אם כן, ממשיכים לשלב הבא לפתרון בעיות.
מוודאים שקיימים לקוחות OAuth 2.0 בסיסיים נדרשים.
בדף Credentials במסוף Google Cloud, מחפשים את הקטע OAuth 2.0 Client IDs.
אם לקוחות OAuth 2.0 לא מופיעים (ואם ביצעתם את כל השלבים לפתרון הבעיות שלמעלה), צריך לפנות לתמיכה.
באפליקציה שלי לפלטפורמת Apple, למה מופיעה השגיאה הבאה:
You must specify <clientID> in <GIDConfiguration> ?
You must specify <clientID> in <GIDConfiguration>אם אתם מקבלים את השגיאה הבאה, כדאי לפעול לפי השלבים לפתרון בעיות שמפורטים בתשובות לשאלות הנפוצות:
You must specify |clientID| in |GIDConfiguration|
מוודאים שהכניסה באמצעות Google מופעלת בצורה תקינה כספק אימות:
במסוף Firebase, פותחים את הקטע Authentication.
בכרטיסייה שיטת התחברות, משביתים את שיטת ההתחברות Google ואז מפעילים אותה מחדש (גם אם היא כבר מופעלת):
פותחים את שיטת הכניסה Google, משביתים אותה ולוחצים על שמירה.
פותחים מחדש את שיטת הכניסה Google, מפעילים אותה ולוחצים על שמירה.
מוודאים שהאפליקציה משתמשת בקובץ ההגדרות העדכני של Firebase (
GoogleService-Info.plist).
איך מקבלים את קובץ ההגדרות של האפליקציהבודקים אם השגיאה עדיין מופיעה. אם כן, ממשיכים לשלב הבא לפתרון בעיות.
מוודאים שקיימים לקוחות OAuth 2.0 בסיסיים נדרשים.
בדף Credentials במסוף Google Cloud, מחפשים את הקטע OAuth 2.0 Client IDs.
אם לקוחות OAuth 2.0 לא מופיעים (ואם ביצעתם את כל השלבים לפתרון הבעיות שלמעלה), צריך לפנות לתמיכה.
למה מופיעה השגיאה הבאה באפליקציית האינטרנט שלי:
AuthErrorCode.INVALID_OAUTH_CLIENT_ID ?
AuthErrorCode.INVALID_OAUTH_CLIENT_IDאם אתם מקבלים את השגיאה הבאה, כדאי לפעול לפי השלבים לפתרון בעיות שמפורטים בתשובות לשאלות הנפוצות:
AuthErrorCode.INVALID_OAUTH_CLIENT_ID
מוודאים שהכניסה באמצעות Google מופעלת בצורה תקינה כספק אימות:
במסוף Firebase, פותחים את הקטע Authentication.
בכרטיסייה שיטת התחברות, משביתים את שיטת ההתחברות Google ואז מפעילים אותה מחדש (גם אם היא כבר מופעלת):
פותחים את שיטת הכניסה Google, משביתים אותה ולוחצים על שמירה.
פותחים מחדש את שיטת הכניסה Google, מפעילים אותה ולוחצים על שמירה.
בנוסף, בקטע Authentication של הגדרת ספק הכניסה Google, מוודאים שמזהה הלקוח והסוד של OAuth זהים ללקוח האינטרנט שמוצג בדף פרטי הכניסה במסוף Google Cloud (בקטע מזהי לקוח OAuth 2.0).
למה הכניסה לאפליקציית האינטרנט שלי באמצעות הפניות אוטומטיות נכשלת עם השגיאה הבאה:
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operation ?
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operationאם אתם מקבלים את השגיאה הבאה, כדאי לפעול לפי השלבים לפתרון בעיות שמפורטים בתשובות לשאלות הנפוצות:
This domain YOUR_REDIRECT_DOMAIN is not authorized to run this operation.
הסיבה לשגיאה הזו היא כנראה שהדומיין להפניה לא מופיע כדומיין מורשה ל-Firebase Authentication, או שמפתח ה-API שבו אתם משתמשים עם שירות Firebase Authentication לא תקין.
קודם צריך לוודא ש-YOUR_REDIRECT_DOMAIN מופיע ברשימת הדומיינים המורשים של פרויקט Firebase. אם הדומיין להפניה אוטומטית כבר מופיע שם, ממשיכים לפתור בעיות שקשורות למפתח API לא תקין.
כברירת מחדל, Firebase Authentication JS SDK מסתמך על מפתח ה-API של פרויקט Firebase שלכם, שמסומן כ-Browser key, והוא משתמש במפתח הזה כדי לוודא שכתובת ה-URL של ההפניה האוטומטית לכניסה תקפה בהתאם לרשימת הדומיינים המורשים.
Authentication מקבל את מפתח ה-API הזה בהתאם לאופן הגישה ל-SDK:Authentication
אם אתם משתמשים בHostingעוזרים לאימות שסופקו על ידיAuthentication JS SDK כדי להכניס משתמשים, Firebase מקבל באופן אוטומטי את מפתח ה-API עם שאר הגדרות Firebase בכל פעם שאתם מבצעים פריסה ל-Firebase Hosting. חשוב לוודא ש-
authDomainבאפליקציית האינטרנטfirebaseConfigמוגדר כראוי לשימוש באחד מהדומיינים של אתר Hosting. כדי לבדוק את זה, צריך להיכנס אלhttps://authDomain__/firebase/init.jsonולבדוק אםprojectIdזהה לזה שמופיע ב-firebaseConfig.אם אתם מארחים בעצמכם את קוד הכניסה, אתם יכולים להשתמש בקובץ
__/firebase/init.jsonכדי לספק את ההגדרה של Firebase לכלי העזר להפניה אוטומטית של Firebase Authentication JS SDK שמתארח בעצמו. מפתח ה-API והערךprojectIdשמופיעים בקובץ ההגדרות הזה צריכים להיות זהים לערכים של אפליקציית האינטרנטfirebaseConfig.
כדי לוודא שמפתח ה-API לא נמחק, עוברים לחלונית APIs & Services > Credentials במסוף Google Cloud, שבה מופיעים כל מפתחות ה-API של הפרויקט.
אם
Browser keyלא נמחק, כדאי לבדוק את הדברים הבאים:מוודאים ש-Firebase Authentication API מופיע ברשימת ממשקי ה-API המורשים למפתח כדי לגשת (מידע נוסף על הגבלות API למפתחות API).
אם אתם מארחים בעצמכם את קוד הכניסה, ודאו שמפתח ה-API שמופיע בקובץ
__/firebase/init.jsonזהה למפתח ה-API במסוף Google Cloud. אם צריך, מתקנים את המפתח בקובץ ומפרסמים מחדש את האפליקציה.אם
Browser keyנמחק, אפשר לבקש מ-Firebase ליצור מפתח API חדש: במסוף Firebase, עוברים אלsettings > הגדרות הפרויקט , ואז בקטע Your apps (האפליקציות שלך), לוחצים על אפליקציית האינטרנט. הפעולה הזו יוצרת באופן אוטומטי מפתח API שמופיע בקטע SDK setup and configuration (הגדרה והגדרות של ה-SDK) של אפליקציית האינטרנט.
שימו לב שבמסוף Google Cloud, מפתח ה-API החדש לא ייקרא
Browser key, אלא הוא יקבל את אותו שם כמו הכינוי של אפליקציית האינטרנט שלכם ב-Firebase. אם מחליטים להוסיף הגבלות על ממשקי API למפתח ה-API החדש הזה, צריך לוודא שממשק Firebase Authentication API מופיע ברשימת ממשקי ה-API המותרים.אחרי שיוצרים מפתח API חדש, צריך לבצע את השלבים הרלוונטיים שבהמשך:
אם אתם משתמשים בכתובות URL Hostingשמורות, צריך לפרוס מחדש את האפליקציה ב-Firebase כדי שהמערכת תוכל לקבל באופן אוטומטי את מפתח ה-API החדש עם שאר הגדרות התצורה של Firebase.
אם אתם מארחים בעצמכם את קוד הכניסה, צריך להעתיק את מפתח ה-API החדש, להוסיף אותו לקובץ
__/firebase/init.jsonואז לפרוס מחדש את האפליקציה.
איך יוצרים באופן ידני לקוח OAuth לאינטרנט?
פותחים את הדף Credentials במסוף Google Cloud.
בחלק העליון של הדף, בוחרים באפשרות Create credentials > OAuth client ID (יצירת פרטי כניסה > מזהה לקוח OAuth).
אם מוצגת בקשה להגדיר את מסך ההסכמה, פועלים לפי ההוראות במסך ואז ממשיכים לשלבים הבאים בשאלות הנפוצות האלה.
יוצרים את לקוח האינטרנט OAuth:
ב-Application Type (סוג האפליקציה), בוחרים באפשרות Web application (אפליקציית אינטרנט).
בקטע מקורות מורשים של JavaScript, מוסיפים את הערכים הבאים:
http://localhosthttp://localhost:5000https://PROJECT_ID.firebaseapp.comhttps://PROJECT_ID.web.app
בקטע Authorized Redirect URIs (כתובות URI מורשות להפניה אוטומטית), מוסיפים את הכתובות הבאות:
https://PROJECT_ID.firebaseapp.com/__/auth/handlerhttps://PROJECT_ID.web.app/__/auth/handler
שומרים את לקוח ה-OAuth.
מעתיקים את מזהה הלקוח ואת הסוד החדשים ב-OAuth ללוח.
במסוף Firebase, פותחים את הקטע Authentication.
בכרטיסייה Sign in method (שיטת הכניסה), פותחים את ספק Google sign-in (כניסה באמצעות חשבון Google), ואז מדביקים את מספר הלקוח ואת הסוד של שרת האינטרנט שיצרתם והעתקתם מ-Google Cloud console. לוחצים על Save.
איך נקבע %APP_NAME% בתבנית האימייל של אישור שנשלח למשתמש כשהוא נרשם באמצעות כתובת אימייל וסיסמה?
לפני דצמבר 2022, הערך של %APP_NAME% בתבנית האימייל היה שם המותג של OAuth שהוקצה באופן אוטומטי בכל פעם שאפליקציית Android נרשמה בפרויקט Firebase. עכשיו, מכיוון שהמותג OAuth מוקצה רק כשמופעלת כניסה באמצעות חשבון Google, בהמשך מוסבר איך נקבע הערך %APP_NAME%:
אם שם המותג של OAuth זמין, אז
%APP_NAME%בתבנית האימייל יהיה שם המותג של OAuth (כמו ההתנהגות לפני דצמבר 2022).אם שם המותג של OAuth לא זמין, כך נקבע
%APP_NAME%בתבנית האימייל:באפליקציות אינטרנט, הערך של
%APP_NAME%יהיה שם האתר שמוגדר כברירת מחדל Firebase Hosting (הערך שלפני.firebaseapp.comו-.web.app, ובדרך כלל מזהה פרויקט Firebase).באפליקציות לנייד:
אם שם החבילה ל-Android או מזהה החבילה ל-iOS מופיעים בבקשה, אז
%APP_NAME%יהיה שם האפליקציה שמופיע בחנות Play או ב-App Store (בהתאמה).אחרת,
%APP_NAME%יהיה שם האתר שמוגדר כברירת מחדל Firebase Hosting (הערך שלפני.firebaseapp.comו-.web.app, ובדרך כלל מזהה הפרויקט ב-Firebase).
שימו לב שאם החיפוש של שם האתר שמוגדר כברירת מחדל Firebase Hosting נכשל, המערכת תשתמש כמפלט האחרון במזהה הפרויקט ב-Firebase בתור
%APP_NAME%.