איך משתמשים במפתחות API ל-Firebase ומנהלים אותם

מפתח 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 אחד.

מפתחות API שנוצרו באופן אוטומטי על ידי Firebase עבור אפליקציות 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 או Google. באופן ספציפי, הם משמשים לשיוך בקשות API לפרויקט שלכם לצורכי מכסה וחיוב. הם שימושיים גם לגישה לנתונים ציבוריים.

לדוגמה, אפשר להשתמש במפתח API באופן מפורש על ידי העברת הערך שלו לקריאה ל-API ל-REST כפרמטר של שאילתה. בדוגמה הזו מוצג אופן שליחת בקשה ל-Dynamic Links link shortener API:

POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY

כשהאפליקציה שולחת קריאה ל-Firebase API שדורש מפתח API שסופק על ידי הלקוח לנייד או לאינטרנט, האפליקציה תחפש באופן אוטומטי את מפתח ה-API של הפרויקט בקובץ ההגדרות או באובייקט ההגדרות של Firebase. עם זאת, אפשר לספק מפתחות API לאפליקציה באמצעות מנגנון אחר, כולל משתני סביבה.

בדיקה והחלה של הגבלות מתאימות על מפתחות 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 ספציפיים לסביבה (מומלץ)

אם הגדרתם פרויקטים שונים ב-Firebase לסביבות שונות, כמו Staging וייצור, חשוב שכל מופע של אפליקציה יקיים אינטראקציה עם פרויקט Firebase התואם. לדוגמה, מופע של אפליקציית ביניים לא אמור לתקשר עם פרויקט Firebase של סביבת הייצור. זה גם אומר שאפליקציית הבדיקה צריכה להשתמש במפתחות API שמשויכים לפרויקט הבדיקה ב-Firebase.

כדי לצמצם את הבעיות שעלולות לקרות כשמעבירים שינויים בקוד משלב הפיתוח לשלב ההכנה לשחרור ולשלב הייצור, במקום לכלול את מפתחות ה-API בקוד עצמו, כדאי להגדיר אותם כמשתני סביבה או לכלול אותם בקובץ הגדרות.

שימו לב: אם אתם משתמשים ב-Firebase Local Emulator Suite לפיתוח יחד עם Firebase ML, אתם צריכים ליצור מפתח API לניפוי באגים בלבד ולהשתמש בו. הוראות ליצירת מפתח כזה מופיעות במסמכי Firebase ML.

שאלות נפוצות ופתרון בעיות

שאלות נפוצות

פתרון בעיות