איך משתמשים במפתחות API ל-Firebase ומנהלים אותם
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
מפתח API הוא מחרוזת ייחודית שמשמשת להפניית בקשות לפרויקט Firebase שלכם כשמתקשרים עם שירותי Firebase ו-Google. בדף הזה מוסבר על מפתחות API ומוצגות שיטות מומלצות לשימוש במפתחות API ולניהול שלהם באפליקציות Firebase.
אם קיבלתם אימייל מכתובת Google Cloud בנושא "מפתח Google API שנגיש לציבור בפרויקט Google Cloud" ומפתח ה-API שמופיע באימייל הוא מפתח Firebase API, עליכם לוודא שמפתח ה-API עומד בדרישות הבאות כדי שתוכלו לכלול אותו בבטחה בקוד או בקובצי ההגדרות. בדף APIs & Services > Credentials במסוף Google Cloud אפשר לבדוק את הפרטים הבאים:
זהו מפתח ה-API שבו אתם משתמשים באפליקציית Firebase שלכם ורק בשירותי Firebase. המקשים האלה נקראים בדרך כלל
Browser key (auto created by Firebase) או
Android key (auto created by Firebase) או
iOS key (auto created by Firebase).
המפתח כולל את כל ממשקי ה-API שקשורים ל-Firebase ונדרשים, שמופיעים ברשימת ההיתרים של 'הגבלות על API' של המפתח.
לא מופיעים ממשקי API אחרים ברשימת ההיתרים של 'הגבלות API'. בפרט, הרשימה לא יכולה לכלול Generative Language API.
בנוסף, חשוב לוודא שאתם משתמשים ב-Firebase Security Rules וב-App Check כמומלץ
במוצרי Firebase שבהם אתם משתמשים.
בהמשך הדף הזה מופיע מידע מפורט על מפתחות API ל-Firebase, וגם רשימה של שאלות נפוצות בנושא המפתחות האלה.
מידע כללי על מפתחות API ו-Firebase
מפתחות API ל-Firebase שונים ממפתחות API רגילים
בניגוד לשימוש הרגיל במפתחות API, מפתחות API לשירותי Firebase לא משמשים לשליטה בגישה למשאבי קצה עורפי. אפשר לעשות זאת רק באמצעות Firebase Security Rules (כדי לקבוע אילו משתמשי קצה יכולים לגשת למשאבים) וFirebase App Check (כדי לקבוע אילו אפליקציות יכולות לגשת למשאבים).
בדרך כלל, צריך לשמור על מפתחות API בקפדנות (לדוגמה, באמצעות שירות כספת או הגדרת המפתחות כמשתני סביבה). עם זאת, מפתחות API לשירותי Firebase יכולים להיכלל בקוד או בקובצי תצורה שנשמרים.
אפשר גם לראות איזה מפתח 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 config, בשדה apiKey.
שימוש במפתח API
מפתחות API ל-Firebase משמשים לזיהוי פרויקט Firebase כשמתקשרים עם Firebase או עם שירותי Google. באופן ספציפי, הם משמשים לשיוך בקשות API עם הפרויקט שלכם, לצורכי מכסה וחיוב. הם שימושיים גם לגישה לנתונים ציבוריים.
ברוב המקרים, מפתחים לא צריכים ליצור אינטראקציה ישירה עם מפתחות ה-API האלה. במקום זאת, כשהאפליקציה שולחת קריאה ל-Firebase API שנדרש לו מפתח API שסופק על ידי לקוח לנייד או לקוח אינטרנט, האפליקציה מחפשת באופן אוטומטי מפתח API בהגדרות Firebase של האפליקציה. ההגדרה הזו נוספה לבסיס הקוד של האפליקציה כשקישרתם את האפליקציה ל-Firebase.
הערה: אפשר לספק את מפתח ה-API של האפליקציה בתוך האפליקציה באמצעות מנגנון אחר, כמו אפשרויות של Firebase או שימוש במשתני סביבה.
בנוסף, יכול להיות שתצטרכו להעביר באופן מפורש את הערך של מפתח ה-API למצב קריאה כפרמטר של שאילתה בכמה ממשקי REST API לשירותי Firebase.
בדוגמה הזו אפשר לראות איך שולחים בקשה באמצעות Firebase Authentication API:
חשוב מאוד לוודא שלכל מפתחות ה-API בפרויקט מוגדרות הגבלות ומגבלות מתאימות על ממשקי ה-API, כמו שמתואר בקטע הזה.
בדיקה של ממשקי ה-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 שלכם, הוא לא יוכל לגשת למסד הנתונים או לנתוני Cloud Storage הפרויקט שלכם ב-Firebase כל עוד הנתונים האלה מוגנים על ידי 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בתשלום. בפרט, אסור לכלול את Gemini Developer API ברשימת ההיתרים של מפתח API שנגיש לציבור או של מפתח שמשמש לשירותים אחרים.
שימוש במפתחות API נפרדים ומוגבלים עבור ממשקי API שאינם של Firebase מאפשר לכם להחליף את המפתחות כשצריך ולהוסיף הגבלות נוספות למפתחות ה-API בלי לשבש את השימוש בשירותי Firebase.
הוראות ליצירת מפתחות ספציפיים ל-API
בהוראות האלה מוסבר איך ליצור מפתח API נפרד ומוגבל עבור API פיקטיבי בשם Super Service API.
שלב 1: הגדרת מפתחות ה-API הקיימים כך שלא תהיה להם גישה אל Super Service API
במסוף Google Cloud, נכנסים לדף APIs & Services > Credentials.
אם מתבקשים, בוחרים פרויקט.
פותחים את תצוגת העריכה של כל מפתח 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
חוזרים לדף APIs & Services > 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 התואם. לדוגמה, מופע של אפליקציית staging לא צריך לתקשר עם פרויקט Firebase של סביבת הייצור. זה גם אומר שאפליקציית הבדיקה צריכה להשתמש במפתחות API שמשויכים לפרויקט הבדיקה ב-Firebase.
כדי לצמצם את הבעיות שקשורות לקידום שינויים בקוד משלב הפיתוח לשלב הביניים ולשלב הייצור, במקום לכלול מפתחות API בקוד עצמו, אפשר להגדיר אותם כמשתני סביבה או לכלול אותם בקובץ הגדרות.
שאלות נפוצות ופתרון בעיות
שאלות נפוצות
האם מפתחות 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.
במהלך מאי 2024, כל מפתחות ה-API הקיימים והלא מוגבלים ש-Firebase הקצתה אוטומטית בעבר הוגבלו לרשימת ממשקי ה-API שקשורים ל-Firebaseבנוסף לכל ממשקי ה-API שמופעלים כרגע בפרויקט.
מפתחות API קיימים ש-Firebase הקצה אוטומטית בעבר וכבר הוגבלה אליהם הגישה לא השתנו.
מפתחות API קיימים שלא הוקצו אוטומטית על ידי Firebase לא השתנו.
איך אפשר לדעת איזה מפתח API משויך לאפליקציה שלי ב-Firebase?
אפשר להשתמש באחת מהאפשרויות הבאות כדי לקבוע איזה מפתח API משויך לאפליקציית Firebase:
האם אפשר שיופיעו שני מפתחות API לאותה אפליקציית Firebase בקובץ או באובייקט ההגדרות של Firebase?
אפליקציות של אפל ב-Firebase – לכל אפליקציה יש קובץ תצורה משלה, ויכול להיות בה רק מפתח API אחד.
אפליקציות Firebase ל-Android – כל אפליקציות Android בפרויקט Firebase מופיעות באותו קובץ תצורה, ולכל אפליקציה יכול להיות רק מפתח API אחד שמופיע ברשימה. עם זאת, לכל אפליקציה בקובץ ההגדרות הזה יכול להיות מפתח שונה.
אפליקציות אינטרנט של Firebase – לכל אפליקציה יש אובייקט הגדרה משלה, ויכול להיות שיופיע בה רק מפתח API אחד.
אפשר להשתמש בכמה מפתחות API באפליקציה אחת. אתם צריכים לספק מנגנון שיאפשר לאפליקציה לגשת למפתחות ה-API האחרים האלה, למשל באמצעות משתנה סביבתי. המנגנון לגישה למפתחות API אחרים לא יכול להסתמך על כך שמפתחות ה-API האלה מופיעים בקובץ או באובייקט ההגדרות של Firebase.
איך Firebase יודע איזה מפתח API להתאים לאפליקציה (כמו בקובץ או באובייקט התצורה של Firebase)?
אם Firebase לא מוצא מפתחות מוגבלים שתואמים, הוא יציג בקובץ ההגדרות או באובייקט את iOS key לאפליקציות של אפל, את Android key לאפליקציות ל-Android ואת Browser key לאפליקציות לאינטרנט (בהנחה שהמפתחות האלה קיימים ואין להם הגבלות על אפליקציות שמונעות התאמה לאפליקציה הזו).
האם אפשר למחוק באופן ידני את מפתח ה-API והשדה מקובץ התצורה או מהאובייקט של Firebase?
כן, אפשר למחוק את מפתח ה-API באופן ידני מקובץ ההגדרות או מהאובייקט. עם זאת, עליכם לספק מנגנון אחר לאפליקציה כדי לגשת למפתח API (למשל באמצעות משתנה סביבה). אחרת, כל השיחות לשירותי Firebase ייכשלו.
האם אפשר לערוך ידנית את קובץ ההגדרות או האובייקט של Firebase עם מפתחות API שונים?
כן, אפשר לערוך באופן ידני קובץ או אובייקט תצורה כדי לשייך מפתח API אחר לאפליקציה.
האם אפשר להעביר מפתח API מפרויקט Firebase אחד לפרויקט אחר?
לא, מפתח API מזהה רק פרויקט ספציפי ואי אפשר להעביר אותו לפרויקט אחר.
מה קורה אם מוחקים מפתח API שמופיע במסוף Google Cloud?
אם מוחקים מפתח API שנמצא בשימוש באפליקציה, קריאות ה-API מהאפליקציה ייכשלו. יכול להיות שתקבלו דוחות, אימיילים או שגיאות שמציינים שניסיתם להשתמש במפתח API לא תקין.
מחיקת מפתח API היא פעולה סופית ואי אפשר לבטל אותה.
אילו ממשקי API נדרשים ברשימת ההיתרים של 'הגבלות על ממשקי API' עבור מפתח API של Firebase?
במקרה של מפתח API של Firebase, ממשקי ה-API היחידים שצריכים להיכלל ברשימת ההיתרים של מפתח ה-API בקטע 'הגבלות על ממשקי API' הם ממשקי ה-API שדורשים מהלקוח לספק מפתח API יחד עם הקריאה. שימו לב שרק למספר קטן מאוד של ממשקי API שקשורים ל-Firebase יש דרישה כזו. ברוב ממשקי ה-API שקשורים ל-Firebase ומופעלים בפרויקט, לא צריך להוסיף את המפתח לרשימת ההיתרים של 'הגבלות על ממשקי API'.
* נדרש רק אם משתמשים במפתח 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. אם זה המצב, צריך לוודא ש-Firebase Management API מופיע ברשימת ממשקי ה-API המותרים.
קיבלתי אימייל או שגיאה שמציינים שמפתח ה-API שלי לא תקין. מה קרה ואיך אפשר לפתור את הבעיה?
אלה כמה מהסיבות הנפוצות ביותר למפתחות API לא תקינים:
למפתח ה-API הוחלו הגבלות על מפתח ה-API, ולכן הוא לא תואם לאפליקציה שמנסה להשתמש במפתח (הגבלות על אפליקציה) או שהוא לא יכול לשמש את ה-API שאליו מתבצעת הקריאה (הגבלות על API).
מפתח ה-API נמחק מהפרויקט במסוף Google Cloud.
מפתח ה-API לא נוצר עבור מזהה הפרויקט שמופיע בקובץ ההגדרה או באובייקט ההגדרה של Firebase באפליקציה.
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2026-06-28 (שעון UTC)."],[],[]]