איך משתמשים במפתחות 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.

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

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

שימוש במפתח API

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

לדוגמה, אפשר להשתמש במפורש במפתח API על ידי העברת הערך שלו ל-REST קריאה ל-API כפרמטר של שאילתה. בדוגמה הזו מוסבר איך שולחים בקשה ל-Dynamic Links 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 שלכם הם לא יוכלו לגשת לאף אחד ממסד הנתונים של פרויקט Firebase שלכם. או נתונים של Cloud Storage כל עוד הנתונים האלה מוגנים Firebase Security Rules עם זאת, הם יכולים להשתמש במפתח ה-API שלכם כדי לגשת לנקודות הקצה לאימות ב-Firebase ולשלוח בקשות אימות לגבי הפרויקט שלכם.

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

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

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

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

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

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

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

שאלות נפוצות

פתרון בעיות