מפתח 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 בודד.
Firebase יוצר אוטומטית מפתחות API עבור הפרויקט שלך כאשר אתה מבצע אחת מהפעולות הבאות:
- צור פרויקט Firebase >
Browser key
נוצר אוטומטית - צור אפליקציית Firebase Apple >
iOS key
נוצר אוטומטית - צור אפליקציית Firebase ל-Android >
Android key
נוצר אוטומטית
אתה יכול גם ליצור מפתחות API משלך ב- Google Cloud Console , למשל לפיתוח או איתור באגים . למידע נוסף על מתי זה עשוי להיות מומלץ מאוחר יותר בדף זה.
מציאת מפתחות ה-API שלך
אתה יכול להציג ולנהל את כל מפתחות ה-API של הפרויקט שלך בחלונית APIs & Services > Credentials ב-Google Cloud Console.
תוכל גם למצוא איזה מפתח 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 Console .
השתמש במפתחות 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 נפרד ומוגבל עבור API מזויף בשם Super Service API
.
שלב 1: הגדר את מפתחות ה-API הקיימים שלך כדי לא לאפשר גישה ל- Super Service API
פתח את דף האישורים של Google Cloud Console. כאשר תתבקש, בחר את הפרויקט שלך.
עבור כל מפתח API קיים ברשימה, פתח את תצוגת העריכה.
בקטע הגבלות API , בחר הגבל מפתח ולאחר מכן הוסף לרשימה את כל ממשקי ה-API שאליהם תרצה שתהיה למפתח ה-API גישה. הקפד לא לכלול את ה-API שעבורו אתה יוצר מפתח API נפרד (בדוגמה זו,
Super Service API
).כאשר אתה מגדיר את הגבלות ה-API של מפתח API , אתה מצהיר במפורש על ממשקי ה-API שאליהם יש למפתח גישה. כברירת מחדל, כאשר בקטע הגבלות API נבחרה מפתח אל תגביל , ניתן להשתמש במפתח API כדי לגשת לכל API שמופעל עבור הפרויקט.
כעת, מפתחות ה-API הקיימים שלך לא יעניקו גישה ל- Super Service API
, אך כל מפתח ימשיך לעבוד עבור כל ממשקי ה-API שהוספת לרשימת מגבלות ה-API שלו.
שלב 2: צור והשתמש במפתח API חדש לגישה ל- Super Service API
חזור לדף האישורים . ודא שפרויקט Firebase שלך עדיין נבחר.
לחץ על צור אישורים > מפתח API . שים לב למפתח ה-API החדש, ולאחר מכן לחץ על הגבל מפתח .
בקטע הגבלות API , בחר הגבל מפתח ולאחר מכן הוסף לרשימה רק את ה-
Super Service API
.מפתח API חדש זה מעניק גישה רק ל-
Super Service API
.הגדר את האפליקציה והשירותים שלך לשימוש במפתח ה-API החדש.
השתמש במפתחות API ספציפיים לסביבה (מומלץ)
אם אתה מגדיר פרויקטים שונים של Firebase עבור סביבות שונות, כגון שלב והפקה, חשוב שכל מופע אפליקציה ייצור אינטראקציה עם פרויקט Firebase המתאים לו. לדוגמה, מופע אפליקציית הבמה שלך לעולם לא אמור לדבר עם פרויקט Firebase הייצור שלך. זה גם אומר שאפליקציית ה-Staging שלך צריכה להשתמש במפתחות API המשויכים לפרויקט ה-Staging Firebase שלך.
כדי לצמצם בעיות בקידום שינויים בקוד מפיתוח לשלב לייצור, במקום לכלול מפתחות API בקוד עצמו, הגדר אותם כמשתני סביבה או כלול אותם בקובץ תצורה.
שים לב שאם אתה משתמש ב-Firebase Local Emulator Suite לפיתוח יחד עם Firebase ML, עליך ליצור ולהשתמש במפתח API לניפוי באגים בלבד. הוראות ליצירת מפתח מסוג זה נמצאות במסמכים של Firebase ML .
שאלות נפוצות
תוכל להשתמש בכל אחת מהאפשרויות הבאות כדי לקבוע איזה מפתח API משויך לאפליקציית Firebase שלך:
קונסולת Firebase
עבור אל הגדרות פרויקט ולאחר מכן גלול מטה אל כרטיס האפליקציות שלך .
בחר את האפליקציה המעניינת.
השג את קובץ התצורה/אובייקט של Firebase עבור האפליקציה המעניינת, ולאחר מכן מצא את מפתח ה-API שלה:
Apple : הורד את
GoogleService-Info.plist
ולאחר מכן מצא את השדהAPI_KEY
אנדרואיד : הורד את
google-services.json
, מצא את התצורה של האפליקציה המעניינת (חפש את שם החבילה שלה), ואז מצא את השדהcurrent_key
אינטרנט : בחר באפשרות Config ולאחר מכן מצא את השדה
apiKey
Firebase CLI
השג את קובץ התצורה/אובייקט של Firebase עבור האפליקציה המעניינת על ידי הפעלת הפקודה הבאה:
firebase apps:sdkconfig PLATFORM FIREBASE_APP_ID
- PLATFORM (אחת מהן):
IOS
|ANDROID
|WEB
- FIREBASE_APP_ID : המזהה הייחודי שהוקצה ל-Firebase עבור אפליקציית Firebase שלך ( מצא את מזהה האפליקציה שלך )
- PLATFORM (אחת מהן):
בתצורת Firebase המודפסת של האפליקציה, מצא את מפתח ה-API שלה:
Apple : מצא את השדה
API_KEY
אנדרואיד : מצא את התצורה של האפליקציה המעניינת (חפש את שם החבילה שלה), ולאחר מכן מצא את השדה
current_key
אינטרנט : מצא את השדה
apiKey
REST API
השג את ה-
apiKeyId
(ה-UID) של מפתח ה-API על ידי קריאה לנקודת הקצה הרלוונטית עבור האפליקציה המעניינת, ולאחר מכן העברת ערךapiKeyId
לשלב הבא.- אפל : התקשר ל-
projects.iosApps.get
- אנדרואיד : התקשר ל-
projects.androidApps.get
- אינטרנט : התקשר ל-
projects.webApps.get
- אפל : התקשר ל-
השג את מחרוזת מפתחות ה-API על ידי קריאה ל-
projects.locations.keys.getKeyString
.keyString
זו היא אותו ערך שניתן למצוא בחפץ התצורה של האפליקציה ( אפל | אנדרואיד | אינטרנט ).
Firebase Apple Apps - לכל אפליקציה יש קובץ תצורה משלה ויכול להיות רשום רק מפתח API אחד.
אפליקציות אנדרואיד של Firebase - כל אפליקציות האנדרואיד בפרויקט Firebase רשומות באותו קובץ תצורה, ולכל אפליקציה יכול להיות רשום מפתח API אחד בלבד. עם זאת, לכל אפליקציה בקובץ התצורה הזה יכול להיות רשום מפתח אחר.
Firebase Web Apps - לכל אפליקציה יש אובייקט תצורה משלה וניתן לרשום רק מפתח API אחד.
עם זאת, אתה יכול להשתמש במספר מפתחות API עם אפליקציה אחת. עליך לספק מנגנון לאפליקציה שלך כדי לגשת למפתחות API אחרים, כמו באמצעות משתנה סביבה. המנגנון לגישה למפתחות ה-API האחרים פשוט לא יכול להיות תלוי במפתחות ה-API שרשומים בקובץ/אובייקט התצורה של Firebase.
כאשר אתה משיג לראשונה את קובץ התצורה/אובייקט Firebase של האפליקציה שלך , Firebase בודק אם קיימים מפתחות API קיימים בפרויקט שלך שיש להם "הגבלות יישומים" התואמות לאפליקציה (לדוגמה, מזהה חבילה תואם לאפליקציית Apple).
אם Firebase לא מוצא מפתחות מוגבלים התואמים, הוא יפרט בקובץ התצורה/אובייקט את iOS key
עבור אפליקציות אפל, Android key
Android עבור אפליקציות אנדרואיד Browser key
עבור אפליקציות אינטרנט (בהנחה שהמפתחות הללו קיימים ו אין להם "הגבלות אפליקציה" שמונעות מהם להתאים לאותה אפליקציה).
כן, אתה יכול למחוק באופן ידני את מפתח ה-API שלך מקובץ התצורה/אובייקט שלך. עם זאת, עליך לספק מנגנון אחר כדי שהאפליקציה שלך תוכל לגשת למפתח API (כמו דרך משתנה סביבה). אחרת, כל קריאה לשירותי Firebase תיכשל.
כן, אתה יכול לערוך באופן ידני קובץ תצורה/אובייקט כדי לשייך מפתח API אחר לאפליקציה.
שים לב שאם אתה משיג מחדש את קובץ התצורה/אובייקט של האפליקציה שלך מהמסוף, הוא תמיד יפרט את מפתחות ה-API ש- Firebase מתאים באופן אוטומטי לאותה אפליקציה . לכן, תצטרך לחזור על העריכות הידניות שלך, לפי הצורך.
לא, מפתח API מזהה רק פרויקט ספציפי ולא ניתן להעבירו לפרויקט אחר.
להלן כמה מהסיבות הנפוצות ביותר למפתחות API לא חוקיים:
על מפתח ה-API הוחלו "הגבלות מפתח API" שהופכות אותו ללא התאמה לאפליקציה המנסה להשתמש במפתח ("הגבלות אפליקציה") או בלתי שמיש עבור ה-API הנקרא ("הגבלות API").
מפתח ה-API נמחק מהפרויקט ב-Google Cloud Console.
מפתח ה-API לא נוצר עבור מזהה הפרויקט הרשום בקובץ/אובייקט התצורה של Firebase של האפליקציה.
אחת הדרכים לתקן בעיה זו היא להשיג את הגרסה המעודכנת של קובץ התצורה/אובייקט Firebase של האפליקציה שלך , ולאחר מכן להחליף את קובץ התצורה/אובייקט הישן שלך בקובץ/האובייקט המעודכן החדש. לפני שליחת קובץ תצורה להורדה או הצגת אובייקט תצורה במסוף, Firebase בודק שמפתחות ה-API הרשומים תואמים לאפליקציות .
על מפתח ה-API המשמש את אפליקציית האינטרנט שלך כנראה הוחלו עליו "הגבלות API" . אם זה המקרה, ודא שממשק ה-API לניהול Firebase נמצא ברשימת ממשקי ה-API המותרים.
אם תמחק מפתח API שנמצא בשימוש אפליקציה, קריאות API מאותה אפליקציה ייכשלו. ייתכן שתקבל דוחות, הודעות דוא"ל או שגיאות שאתה מנסה להשתמש במפתח API שאינו חוקי.
מחיקת מפתח API היא לצמיתות ולא ניתן לבטלה.