מפתח API הוא מחרוזת ייחודית שמשמשת לניתוב בקשות לפרויקט Firebase כשמתקשרים עם שירותי Firebase ו-Google. בדף הזה מוסבר על מפתחות API ומוצגות שיטות מומלצות לשימוש במפתחות API ולניהול שלהם באפליקציות Firebase.
מידע כללי על מפתחות API ו-Firebase
מפתחות API ל-Firebase שונים ממפתחות API רגילים
בניגוד לשימוש הרגיל במפתחות API, מפתחות API לשירותי Firebase לא משמשים לשליטה בגישה למשאבי קצה עורפי. אפשר לעשות זאת רק באמצעות Firebase Security Rules (כדי לקבוע לאילו משתמשי קצה תהיה גישה למשאבים) וFirebase App Check (כדי לקבוע לאילו אפליקציות תהיה גישה למשאבים).
בדרך כלל, צריך לשמור על מפתחות API בקפדנות (לדוגמה, באמצעות שירות כספת או הגדרת המפתחות כמשתני סביבה). עם זאת, אפשר לכלול מפתחות API לשירותי Firebase בקוד או בקובצי תצורה שנשמרים.
למרות שמפתחות API לשירותי Firebase בטוחים לשימוש בקוד, מומלץ לבדוק אותם ולהחיל עליהם הגבלות ומגבלות מתאימות.
יצירת מפתחות API
פרויקט Firebase יכול לכלול הרבה מפתחות API, אבל כל מפתח API יכול להיות משויך רק לפרויקט Firebase אחד.
מערכת Firebase יוצרת באופן אוטומטי מפתחות API לפרויקט כשמבצעים את הפעולות הבאות:
- יצירת פרויקט Firebase >
Browser key
נוצר אוטומטית - יצירת אפליקציית Apple ב-Firebase >
iOS key
נוצר באופן אוטומטי - יצירת אפליקציית Android ב-Firebase >
Android key
נוצר באופן אוטומטי
אפשר גם ליצור מפתחות API משלכם במסוף Google Cloud, למשל לפיתוח או לניפוי באגים. בהמשך הדף הזה מוסבר מתי ההמלצה הזו עשויה להופיע.
איפה אפשר למצוא את מפתחות ה-API
אפשר לראות ולנהל את כל מפתחות ה-API של הפרויקט בחלונית APIs & Services > Credentials במסוף Google Cloud.
במקומות הבאים אפשר גם לראות איזה מפתח API משויך באופן אוטומטי לאפליקציה ב-Firebase. כברירת מחדל, כל האפליקציות של Firebase בפרויקט לאותה פלטפורמה (Apple לעומת Android לעומת אינטרנט) ישתמשו באותו מפתח API.
אפליקציות של Firebase ל-Apple – מזהים את מפתח ה-API שתואם אוטומטית בקובץ ההגדרות של Firebase,
, בשדהGoogleService-Info.plist API_KEY
.אפליקציות ל-Android ב-Firebase – מפתח ה-API שתואם אוטומטית נמצא בקובץ ההגדרות של Firebase,
, בשדהgoogle-services.json current_key
.אפליקציות אינטרנט של Firebase – מפתח ה-API שתואם אוטומטית נמצא באובייקט התצורה של Firebase, בשדה
apiKey
.
שימוש במפתח API
מפתחות API ל-Firebase משמשים לזיהוי פרויקט Firebase כשמתקשרים עם Firebase או עם שירותי Google. באופן ספציפי, הם משמשים לשיוך בקשות API עם הפרויקט שלכם, לצורכי מכסה וחיוב. הם גם שימושיים לגישה לנתונים ציבוריים.
ברוב המקרים, מפתחים לא צריכים ליצור אינטראקציה ישירה עם מפתחות ה-API האלה. במקום זאת, כשהאפליקציה שולחת קריאה ל-Firebase API שדורש מפתח API שסופק על ידי הלקוח לנייד או לאינטרנט, האפליקציה מחפשת באופן אוטומטי מפתח API בהגדרות Firebase של האפליקציה. ההגדרה הזו נוספה לבסיס הקוד של האפליקציה כשקישרתם את האפליקציה ל-Firebase.
שימו לב שאפשר לספק את מפתח ה-API של האפליקציה בתוך האפליקציה באמצעות מנגנון אחר, כמו אפשרויות של Firebase או שימוש במשתני סביבה.
בנוסף, יכול להיות שתצטרכו להעביר באופן מפורש את הערך של מפתח ה-API לקריאה כפרמטר של שאילתה בכמה ממשקי REST API לשירותי Firebase. בדוגמה הזו אפשר לראות איך שולחים בקשה באמצעות Firebase Authentication API:
https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=API_KEY
בדיקה והחלה של הגבלות מתאימות על מפתחות API (מומלץ)
לא צריך להתייחס למפתח API לשירותי Firebase כאל סוד, אבל מומלץ לבדוק ולהחיל הגבלות ומגבלות כמו שמתואר בקטע הזה.
בדיקה של ממשקי ה-API שנוספו אוטומטית לרשימת ההיתרים של מפתחות ה-API של Firebase
כשמערכת Firebase יוצרת מפתח API בפרויקט שלכם, אנחנו מוסיפים באופן אוטומטי 'הגבלות על API' למפתח הזה. ממשקי ה-API שנוספו לרשימת ההיתרים הזו הם ממשקי API שקשורים ל-Firebase, שדורשים מהלקוח לספק מפתח API יחד עם הקריאה. שימו לב שרוב ממשקי ה-API שנדרשים לשימוש בשירותי Firebase לא צריכים להיות ברשימת ההיתרים של מפתחות ה-API.
מכיוון ש-Firebase מוסיף את ממשקי ה-API הדרושים לכל שירותי Firebase, יכול להיות שרשימת ההיתרים של מפתח API תכלול ממשקי API של מוצרים שאתם לא משתמשים בהם. אפשר להסיר ממשקי API מהרשימה המותרת, אבל צריך להיזהר מאוד שלא להסיר את ממשקי ה-API שנדרשים ל-Firebase ולשירותי Firebase שבהם אתם משתמשים (אפשר לעיין ברשימת ממשקי ה-API שקשורים ל-Firebase שצריכים להיכלל ברשימה המותרת לכל שירות או מוצר). אחרת, תקבלו שגיאות כשמתקשרים לשירותי Firebase.
הגבלת המכסה אם משתמשים ב-Authentication מבוסס סיסמה
אם אתם משתמשים בFirebase Authentication שמבוסס על סיסמה, ומישהו השיג את מפתח ה-API שלכם, הוא לא יוכל לגשת למסד הנתונים או לנתונים של פרויקט Firebase כלשהו Cloud Storage כל עוד הנתונים האלה מוגנים על ידי Firebase Security Rules. עם זאת, הם יכולים להשתמש במפתח ה-API שלכם כדי לגשת לנקודות הקצה של האימות ב-Firebase ולשלוח בקשות אימות לפרויקט שלכם.
כדי לצמצם את הסיכון שמישהו ינצל לרעה מפתח API כדי לנסות לבצע מתקפת כוח ברוטלי, אפשר להקטין את מכסת ברירת המחדל של נקודות הקצה identitytoolkit.googleapis.com
כך שתשקף את נפח התנועה הרגיל הצפוי של האפליקציה. חשוב לזכור שאם תקטינו את המכסה הזו והאפליקציה שלכם תזכה לפתע למשתמשים חדשים, יכול להיות שתקבלו שגיאות בכניסה עד שתגדילו את המכסה.
אפשר לשנות את מכסות ה-API של הפרויקט במסוף Google Cloud.
שימוש במפתחות API נפרדים ומוגבלים לכל שירות שאינו Firebase
למרות שבדרך כלל אין צורך להתייחס למפתחות API שמשמשים לשירותי Firebase כאל סוד, כדאי לנקוט אמצעי זהירות נוספים לגבי מפתחות API שבהם אתם משתמשים עם ממשקי Google Cloud API אחרים.
אם אתם משתמשים ב-API Google Cloud (בכל פלטפורמה) שלא מיועד לשירות או למוצר של Firebase, מומלץ מאוד ליצור מפתחות API נפרדים ומוגבלים לשימוש עם ממשקי ה-API האלה. זה חשוב במיוחד אם ה-API מיועד לשירות Google Cloudבתשלום.
לדוגמה, אם אתם משתמשים ב-Firebase ML וב-Cloud Vision APIs ב-iOS, כדאי ליצור מפתחות API נפרדים שבהם תשתמשו רק כדי לגשת ל-Cloud Vision APIs.
שימוש במפתחות API נפרדים ומוגבלים לממשקי API שאינם של Firebase מאפשר לכם להחליף את המפתחות כשצריך ולהוסיף הגבלות נוספות למפתחות ה-API בלי לשבש את השימוש בשירותי Firebase.
הוראות ליצירת מפתחות ספציפיים ל-API
בהוראות האלה מוסבר איך ליצור מפתח API נפרד ומוגבל עבור API פיקטיבי בשם Super Service API
.
שלב 1: הגדרת מפתחות ה-API הקיימים כך שלא תהיה להם גישה אל Super Service API
פותחים את הדף Credentials במסוף Google Cloud. כשמופיעה בקשה, בוחרים את הפרויקט.
פותחים את תצוגת העריכה של כל מפתח API קיים ברשימה.
בקטע API restrictions, בוחרים באפשרות Restrict key, ואז מוסיפים לרשימה את כל ממשקי ה-API שרוצים שלמפתח ה-API תהיה גישה אליהם. חשוב לא לכלול את ה-API שעבורו יוצרים מפתח API נפרד (בדוגמה הזו,
Super Service API
).כשמגדירים הגבלות על ממשקי API של מפתח API, מציינים במפורש לאילו ממשקי API יש למפתח גישה. כברירת מחדל, אם בקטע API restrictions נבחרה האפשרות Don't restrict key, אפשר להשתמש במפתח API כדי לגשת לכל API שמופעל בפרויקט.
מעכשיו, מפתחות ה-API הקיימים לא יאפשרו גישה אל Super Service API
, אבל כל מפתח ימשיך לפעול עבור כל ממשקי ה-API שהוספתם לרשימת ההגבלות על ממשקי ה-API שלו.
שלב 2: יוצרים מפתח API חדש ומשתמשים בו כדי לגשת אל Super Service API
חוזרים לדף Credentials. מוודאים שהפרויקט ב-Firebase עדיין מסומן.
לוחצים על Create credentials > API key (יצירת אמצעי אימות > מפתח API). רושמים את מפתח ה-API החדש ולוחצים על Restrict key.
בקטע API restrictions, בוחרים באפשרות Restrict key, ואז מוסיפים לרשימה רק את
Super Service API
.מפתח ה-API החדש מעניק גישה רק ל-
Super Service API
.מגדירים את האפליקציה והשירותים כך שישתמשו במפתח ה-API החדש.
שימוש במפתחות API ספציפיים לסביבה (מומלץ)
אם הגדרתם פרויקטים שונים ב-Firebase לסביבות שונות, כמו Staging וייצור, חשוב שכל מופע של אפליקציה יקיים אינטראקציה עם פרויקט Firebase התואם. לדוגמה, מופע של אפליקציית ביניים לא אמור לתקשר עם פרויקט Firebase של סביבת הייצור. זה גם אומר שאפליקציית הבדיקה צריכה להשתמש במפתחות API שמשויכים לפרויקט הבדיקה ב-Firebase.
כדי לצמצם את הבעיות שעלולות לקרות כשמעבירים שינויים בקוד משלב הפיתוח לשלב ההכנה לשחרור ולשלב הייצור, במקום לכלול את מפתחות ה-API בקוד עצמו, כדאי להגדיר אותם כמשתני סביבה או לכלול אותם בקובץ הגדרות.
שימו לב: אם אתם משתמשים ב-Firebase Local Emulator Suite לפיתוח יחד עם Firebase ML, אתם צריכים ליצור מפתח API לניפוי באגים בלבד ולהשתמש בו. הוראות ליצירת מפתח כזה מופיעות במסמכי Firebase ML.
שאלות נפוצות ופתרון בעיות
שאלות נפוצות
האם מפתחות API לשירותי Firebase מוגבלים כברירת מחדל?
כן, כברירת מחדל, לכל מפתחות ה-API שמערכת Firebase מקצה אוטומטית לשימוש עם ממשקי API שקשורים ל-Firebase מוחלות הגבלות על API באופן אוטומטי. רשימת ממשקי ה-API שקשורים ל-Firebase שמופיעים ברשימת ההיתרים הזו
ממשקי ה-API שנוספים לרשימת ההיתרים הזו הם ממשקי API שמופעלים על ידי שירותי Firebase מקוד לקוח, ונדרשים מפתחות API כדי לזהות את פרויקט או את האפליקציה שלכם ב-Firebase. חשוב לציין שרוב ממשקי ה-API שנדרשים לשימוש בשירותי Firebase לא צריכים להיות ברשימת ההיתרים של מפתחות ה-API.
מכיוון ש-Firebase מוסיף את ממשקי ה-API הדרושים לכל שירותי Firebase, יכול להיות שרשימת ההיתרים של מפתח API תכלול ממשקי API של מוצרים שאתם לא משתמשים בהם. אפשר להסיר ממשאבי ה-API מרשימת ההיתרים, אבל צריך להיזהר מאוד שלא להסיר את ממשקי ה-API שנדרשים ל-Firebase ולשירותי Firebase שבהם אתם משתמשים (אפשר לעיין ברשימת ממשקי ה-API שקשורים ל-Firebase שצריכים להיכלל ברשימת ההיתרים לכל שירות או מוצר). אחרת, תקבלו שגיאות כשמתקשרים לשירותי Firebase.
אפשר לראות את כל מפתחות ה-API ואת ההגבלות שלהם בקטע APIs & Services > Credentials בחלונית במסוף Google Cloud.
הערה לגבי האופן שבו Firebase מחיל את 'ההגבלות על API':
החל ממאי 2024, כל מפתחות ה-API החדשים שמסופקים אוטומטית על ידי Firebase מוגבלים אוטומטית לרשימת ממשקי ה-API שקשורים ל-Firebase.
במהלך מאי 2024, כל מפתחות ה-API הקיימים והלא מוגבלים ש-Firebase הקצתה אוטומטית בעבר הוגבלו לרשימת ממשקי ה-API שקשורים ל-Firebase בנוסף לכל ממשקי ה-API שמופעלים כרגע בפרויקט.
מפתחות API קיימים ש-Firebase הקצה אוטומטית בעבר וכבר הוגבלו לא השתנו.
מפתחות API קיימים שלא הוקצו אוטומטית על ידי Firebase לא השתנו.
איך אפשר לדעת איזה מפתח API משויך לאפליקציה שלי ב-Firebase?
אפשר להשתמש באחת מהאפשרויות הבאות כדי לקבוע איזה מפתח API משויך לאפליקציה שלכם ב-Firebase:
עוברים אל Project settings (הגדרות הפרויקט) וגוללים למטה אל הכרטיס Your apps (האפליקציות שלך).
בוחרים את האפליקציה הרצויה.
משיגים את קובץ התצורה או האובייקט של Firebase עבור האפליקציה הרלוונטית, ואז מוצאים את מפתח ה-API שלה:
Apple: מורידים את הקובץ
GoogleService-Info.plist
ואז מחפשים את השדהAPI_KEY
.Android: מורידים את
google-services.json
, מחפשים את ההגדרה של האפליקציה הרלוונטית (מחפשים את שם החבילה שלה), ואז מחפשים את השדהcurrent_key
.אינטרנט: בוחרים באפשרות Config ואז מחפשים את השדה
apiKey
.
כדי לקבל את קובץ התצורה או האובייקט של Firebase עבור האפליקציה הרלוונטית, מריצים את הפקודה הבאה:
firebase apps:sdkconfig
PLATFORM FIREBASE_APP_ID - PLATFORM (אחד מהערכים הבאים):
IOS
|ANDROID
|WEB
- FIREBASE_APP_ID: המזהה הייחודי שהוקצה על ידי Firebase לאפליקציה שלכם ב-Firebase (איך מוצאים את מזהה האפליקציה)
- PLATFORM (אחד מהערכים הבאים):
בנתוני ההגדרה של Firebase שמופיעים בהדפסה של האפליקציה, מחפשים את מפתח ה-API שלה:
Apple: איתור השדה
API_KEY
Android: מחפשים את ההגדרה של האפליקציה הרלוונטית (מחפשים את שם החבילה שלה), ואז מחפשים את השדה
current_key
.אינטרנט: מחפשים את השדה
apiKey
כדי לקבל את
apiKeyId
(ה-UID) של מפתח ה-API, צריך לקרוא לנקודת הקצה הרלוונטית של האפליקציה הרצויה, ואז להעביר את הערך שלapiKeyId
לשלב הבא.- Apple: מתקשרים אל
projects.iosApps.get
- Android: התקשר למספר
projects.androidApps.get
- אינטרנט: התקשר אל
projects.webApps.get
- Apple: מתקשרים אל
כדי לקבל את המחרוזת של מפתח ה-API, צריך לקרוא ל-
projects.locations.keys.getKeyString
.הערך הזה
keyString
זהה לערך שמופיע בארטיפקט של הגדרות האפליקציה (Apple | Android | אינטרנט).
האם אפשר להשתמש בשני מפתחות API לאותה אפליקציית Firebase בקובץ או באובייקט ההגדרות של Firebase?
אפליקציות של אפל ב-Firebase – לכל אפליקציה יש קובץ תצורה משלה, ויכול להיות שיופיע בה רק מפתח API אחד.
אפליקציות Firebase ל-Android – כל האפליקציות ל-Android בפרויקט Firebase מופיעות באותו קובץ תצורה, ולכל אפליקציה יכול להיות רק מפתח API אחד שמופיע ברשימה. עם זאת, לכל אפליקציה בקובץ ההגדרות הזה יכול להיות מפתח שונה.
אפליקציות אינטרנט ב-Firebase – לכל אפליקציה יש אובייקט הגדרה משלה, ויכול להיות שיופיע בה רק מפתח API אחד.
אפשר להשתמש בכמה מפתחות API באפליקציה אחת. אתם צריכים לספק מנגנון שיאפשר לאפליקציה לגשת למפתחות ה-API האחרים האלה, למשל באמצעות משתנה סביבתי. המנגנון לגישה למפתחות API אחרים לא יכול להיות תלוי בכך שמפתחות ה-API האלה יופיעו בקובץ או באובייקט ההגדרות של Firebase.
איך Firebase יודע איזה מפתח API להתאים לאפליקציה (כמו בקובץ או באובייקט התצורה של Firebase)?
כשאתם מקבלים לראשונה את קובץ ההגדרות או האובייקט של Firebase עבור האפליקציה, מערכת Firebase בודקת אם יש בפרויקט מפתחות API קיימים עם 'הגבלות על אפליקציות' שתואמות לאפליקציה (לדוגמה, מזהה חבילה תואם לאפליקציית Apple).
אם Firebase לא מוצא מפתחות מוגבלים שתואמים, הוא יציג בקובץ ההגדרות או באובייקט את iOS key
לאפליקציות של Apple, את Android key
לאפליקציות ל-Android ואת Browser key
לאפליקציות לאינטרנט (בהנחה שהמפתחות האלה קיימים ואין להם 'הגבלות על אפליקציות' שמונעות התאמה לאפליקציה הזו).
האם אפשר למחוק באופן ידני את מפתח ה-API ואת השדה מקובץ התצורה או מהאובייקט של Firebase?
כן, אפשר למחוק את מפתח ה-API באופן ידני מקובץ ההגדרות או מהאובייקט. עם זאת, עליכם לספק מנגנון אחר לאפליקציה כדי לגשת למפתח API (למשל באמצעות משתנה סביבה). אחרת, כל השיחות לשירותי Firebase ייכשלו.
האם אפשר לערוך ידנית את קובץ התצורה או האובייקט של Firebase עם מפתחות API שונים?
כן, אפשר לערוך באופן ידני קובץ או אובייקט הגדרה כדי לשייך מפתח API אחר לאפליקציה.
שימו לב שאם תקבלו מחדש את קובץ ההגדרות או האובייקט של האפליקציה מהמסוף, תמיד יופיעו בו מפתחות ה-API שFirebase מתאימה לאפליקציה באופן אוטומטי. לכן, תצטרכו לחזור על העריכות הידניות לפי הצורך.
האם אפשר להעביר מפתח API מפרויקט Firebase אחד לפרויקט אחר?
לא, מפתח API מזהה רק פרויקט ספציפי ואי אפשר להעביר אותו לפרויקט אחר.
מה קורה אם מוחקים מפתח API שמופיע במסוף Google Cloud?
אם מוחקים מפתח API שנמצא בשימוש באפליקציה, קריאות ה-API מהאפליקציה ייכשלו. יכול להיות שתקבלו דוחות, אימיילים או שגיאות שמציינים שניסיתם להשתמש במפתח API לא תקין.
מחיקת מפתח API היא פעולה סופית ואי אפשר לבטל אותה.
אילו ממשקי API נדרשים ברשימת ההיתרים של 'הגבלות על ממשקי API' עבור מפתח API של Firebase?
במפתח API של Firebase, ממשקי ה-API היחידים שצריכים להיות ברשימת ההיתרים של המפתח 'הגבלות על ממשקי API' הם ממשקי ה-API שדורשים מהלקוח לספק מפתח API יחד עם הקריאה. שימו לב שרק למספר קטן מאוד של ממשקי API שקשורים ל-Firebase יש דרישה כזו. ברוב ממשקי ה-API שקשורים ל-Firebase ומופעלים בפרויקט, לא צריך להוסיף את המפתח לרשימת ההיתרים של 'הגבלות על ממשקי API'.
בעזרת הטבלה הבאה תוכלו לקבוע אילו ממשקי API שקשורים ל-Firebase צריך לכלול ברשימת ההיתרים של 'הגבלות על ממשקי API' עבור מפתח API של Firebase. חשוב לזכור: מפתחות Firebase API צריכים לשמש רק לשירותי Firebase. מידע נוסף על יצירת מפתחות API נפרדים ומוגבלים לסוגים ספציפיים של ממשקי API
אפשר לראות ולנהל את מפתחות ה-API של הפרויקט בחלונית APIs & Services > Credentials במסוף Google Cloud.
שם ה-API (שם השירות) | שם התצוגה של ה-API | שירות או מוצר משויכים של Firebase |
---|---|---|
firebase.googleapis.com | Firebase Management API | כל המוצרים |
logging.googleapis.com | Cloud Logging API | כל המוצרים |
firebaseinstallations.googleapis.com | Firebase Installations API | Cloud Messaging, Crashlytics, In-App Messaging, Performance Monitoring, Remote Config, Firebase ML |
firebaseappcheck.googleapis.com | Firebase App Check API | App Check |
firebaseappdistribution.googleapis.com | Firebase App Distribution API | App Distribution |
firebaseapptesters.googleapis.com | Firebase App Testers API | App Distribution |
identitytoolkit.googleapis.com | Identity Toolkit API | Authentication |
securetoken.googleapis.com | Token Service API | Authentication |
firebaserules.googleapis.com * | Firebase Rules API | Cloud Firestore, Cloud Storage, Realtime Database |
datastore.googleapis.com | Cloud Datastore API | Cloud Firestore |
firestore.googleapis.com | Google Cloud Firestore API | Cloud Firestore |
fcmregistrations.googleapis.com | FCM Registration API | Cloud Messaging |
firebasestorage.googleapis.com | Cloud Storage for Firebase API | Cloud Storage |
firebasedynamiclinks.googleapis.com | Firebase Dynamic Links API | Dynamic Links |
firebasehosting.googleapis.com * | Firebase Hosting API | Hosting |
firebaseinappmessaging.googleapis.com | Firebase In-App Messaging API | In-App Messaging |
firebaseml.googleapis.com | Firebase ML API | Firebase ML |
mlkit.googleapis.com ** | ML Kit API | Firebase ML |
mobilecrashreporting.googleapis.com | Mobile Crash Reporting API | Performance Monitoring |
play.googleapis.com | ממשק API למפתח Google Play ב-Android | Performance Monitoring |
firebaseremoteconfig.googleapis.com | Firebase Remote Config API | Performance Monitoring, Remote Config |
firebaseremoteconfigrealtime.googleapis.com | Firebase Remote Config Realtime API | Performance Monitoring, Remote Config |
cloudconfig.googleapis.com ** | לא רלוונטי | Remote Config |
firebasedatabase.googleapis.com * | Firebase Realtime Database API | Realtime Database |
firebasevertexai.googleapis.com | Firebase AI Logic API | Firebase AI Logic client SDKs |
* נדרש רק אם משתמשים במפתח Firebase API עם כלים של צד שלישי או עם גישת REST ישירה לשירות או למוצר Firebase.
** חובה בגרסאות קודמות של ה-SDK של המוצר. אם אתם משתמשים בגרסה האחרונה של ה-SDK, אין צורך להוסיף את ה-API לרשימת ההיתרים של המפתח.
פתרון בעיות
איך אפשר לתקן שגיאה מסוג API_KEY_SERVICE_BLOCKED
או Forbidden 403 שמופיעה בהודעה requests to this API are blocked?
אם מופיעה שגיאה או שגיאה שנראית כמו השגיאה הבאה, צריך לפעול לפי ההנחיות שבשאלות הנפוצות האלה: API_KEY_SERVICE_BLOCKED
Forbidden: 403 POST https://example-service.googleapis.com/method: Requests to this API example-service.googleapis.com method google.example-service.rest.method are blocked.
למפתח ה-API שבו האפליקציה משתמשת כדי לקרוא ל-API כנראה הוחלו הגבלות על API, וה-API הזה לא נכלל ברשימת ההיתרים של המפתח.
אם אתם מקבלים את השגיאה הזו כשאתם מנסים להשתמש בשירות או במוצר שקשורים ל-Firebase, אתם צריכים לוודא שמפתח ה-API שבו אתם משתמשים כולל את כל ממשקי ה-API הנדרשים ברשימת ההיתרים של 'הגבלות על API' במפתח.
אם השגיאה הזו מופיעה כשמנסים להשתמש בשירות שאינו שירות Firebase, מומלץ מאוד ליצור מפתח API חדש במיוחד בשביל השירות וה-API האלה. מפתחות Firebase API צריכים לשמש רק לשירותים ולמוצרים של Firebase. מידע נוסף על יצירת מפתחות API נפרדים ומוגבלים לסוגים ספציפיים של ממשקי API
איך אפשר לפתור את השגיאה הזו? "האחזור של מזהה המדידה של האפליקציה הזו ב-Firebase מהשרת נכשל".
למפתח ה-API שבו משתמשת אפליקציית האינטרנט שלכם כנראה הוחלו הגבלות על API. אם זה המצב, צריך לוודא ש-Firebase Management API מופיע ברשימת ממשקי ה-API המותרים.
קיבלתי אימייל או שגיאה שבהם כתוב שמפתח ה-API שלי לא תקין. מה קרה ואיך אפשר לפתור את הבעיה?
אלה כמה מהסיבות הנפוצות ביותר למפתחות API לא תקינים:
למפתח ה-API הוחלו הגבלות על מפתח ה-API, שגורמות לכך שלא ניתן להתאים אותו לאפליקציה שמנסה להשתמש במפתח (הגבלות על אפליקציות) או שלא ניתן להשתמש בו עבור ה-API שאליו מתבצעת הקריאה (הגבלות על API).
מפתח ה-API נמחק מהפרויקט במסוף Google Cloud.
מפתח ה-API לא נוצר עבור מזהה הפרויקט שמופיע בקובץ ההגדרה או באובייקט ההגדרה של Firebase באפליקציה.
אחת הדרכים לפתור את הבעיה היא להשיג את הגרסה המעודכנת של קובץ ההגדרות או האובייקט של Firebase של האפליקציה, ואז להחליף את קובץ ההגדרות או האובייקט הישן בקובץ או באובייקט החדשים והמעודכנים. לפני ששולחים קובץ הגדרות להורדה או מציגים אובייקט הגדרות במסוף, Firebase בודק שמפתחות ה-API שמופיעים בו תואמים לאפליקציות.