למד על שימוש וניהול מפתחות API עבור Firebase

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

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

מפתחות API עבור Firebase שונים ממפתחות API טיפוסיים

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

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

למרות שמפתחות API עבור שירותי Firebase בטוחים לכלול בקוד, ישנם כמה מקרים ספציפיים שבהם עליך לאכוף מגבלות עבור מפתח ה-API שלך; לדוגמה, אם אתה משתמש ב-Firebase ML, Firebase Authentication עם שיטת הכניסה לדוא"ל/סיסמה, או Google Cloud API שניתן לחיוב. למידע נוסף על מקרים אלו בהמשך עמוד זה.

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

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

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

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

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

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

מציאת מפתחות ה-API שלך

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

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

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

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

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

שימוש במפתח API

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

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

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

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

החל הגבלות על מפתחות API (מומלץ)

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

הדק את המכסה אם אתה משתמש באימות מבוסס סיסמה

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

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

השתמש במפתחות API נפרדים ומוגבלים עבור סוגים ספציפיים של ממשקי API

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

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

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

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

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

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

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

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

שאלות נפוצות