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

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

מידע כללי על מפתחות API ו-Firebase

מפתחות API ל-Firebase שונים ממפתחות API רגילים

בניגוד לאופן שבו משתמשים בדרך כלל במפתחות API, מפתחות API לשירותי Firebase הם לא משמשת לשליטה בגישה למשאבים בקצה העורפי; שאפשר לעשות רק עם Firebase Security Rules (כדי לקבוע לאילו משתמשי קצה תהיה גישה למשאבים) וגם Firebase App Check (כדי לקבוע לאילו אפליקציות תהיה גישה למשאבים).

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

אפשר להוסיף לקוד מפתחות API של שירותי Firebase, אבל מומלץ לבדוק ולהחיל את ההגבלות והמגבלות המתאימות.

יצירת מפתחות API

לפרויקט Firebase יכולים להיות הרבה מפתחות API, אבל כל מפתח API יכול להיות רק שמשויכים לפרויקט Firebase אחד.

מפתחות API שנוצרו באופן אוטומטי על ידי Firebase עבור אפליקציות Firebase

מערכת Firebase יוצרת מפתחות API לפרויקט באופן אוטומטי בכל פעם הבאים:

  • יצירת פרויקט Firebase > Browser key נוצר באופן אוטומטי
  • יצירת אפליקציה ל-Apple ב-Firebase > iOS key נוצרה באופן אוטומטי
  • יצירת אפליקציית Firebase ל-Android > Android key נוצר באופן אוטומטי

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

איך לאתר מפתחות API

אפשר להציג ולנהל את כל מפתחות ה-API של הפרויקט ב ממשקי API שירותים > פרטי כניסה במסוף Google Cloud.

אפשר גם למצוא איזה מפתח API מותאם באופן אוטומטי אפליקציות Firebase במקומות הבאים. על ידי כברירת מחדל, כל אפליקציות Firebase בפרויקט של הפרויקט לאותה פלטפורמה (Apple לעומת Android לעומת אינטרנט) ישתמשו באותו מפתח API.

  • Firebase Apple Apps – מוצאים את מפתח ה-API המותאם אוטומטית ב-Firebase בקובץ התצורה GoogleService-Info.plist, שדה API_KEY.

  • אפליקציות Firebase ל-Android — מוצאים את מפתח ה-API בהתאמה אוטומטית בקטע קובץ התצורה של Firebase, google-services.json, בקטע שדה current_key.

  • אפליקציות אינטרנט ב-Firebase – מוצאים את מפתח ה-API המותאם אוטומטית ב-Firebase אובייקט config, בשדה apiKey.

שימוש במפתח API

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

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

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

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

בדיקה והחלה של ההגבלות המתאימות על מפתחות API (מומלץ)

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

בדיקת ממשקי ה-API שנוספו אוטומטית לרשימת ההיתרים של מפתחות Firebase API שלכם

כשמערכת 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 כדי לנסות לבצע תקיפה מסוג Brute Force, אפשר להגביל את מכסת ברירת המחדל של identitytoolkit.googleapis.com נקודות קצה (endpoint) שמשקפות את התנועה הרגילה של הציפיות שלנו מהאפליקציה. חשוב לדעת שאם תגבילו את המכסה הזו ואת האפליקציה שלכם רווחי משתמשים פתאום, ייתכן שתקבלו שגיאות כניסה עד שתגדילו את המכסה. תוכלו לשנות את מכסות ה-API בפרויקט שלכם מסוף Google Cloud.

שימוש במפתחות API נפרדים ומוגבלים לכל שירות שאינו Firebase

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

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

לדוגמה, אם משתמשים ב-Firebase ML ובממשקי API של Cloud Vision ב-iOS, צריך ליצור מפתחות API נפרדים שבהם משתמשים רק בשביל גישה לממשקי Cloud Vision API.

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

שימוש במפתחות API שספציפיים לסביבה (מומלץ)

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

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

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

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

שאלות נפוצות

פתרון בעיות