کلید API یک رشته منحصر به فرد است که برای هدایت درخواستها به پروژه Firebase شما هنگام تعامل با سرویسهای Firebase و Google استفاده میشود. این صفحه اطلاعات اولیه در مورد کلیدهای API و همچنین بهترین شیوهها برای استفاده و مدیریت کلیدهای API با برنامههای Firebase را شرح میدهد.
اگر ایمیلی از Google Cloud در مورد «کلید API گوگل قابل دسترس برای پروژه Google Cloud شما» دریافت کردهاید و کلید API ذکر شده در ایمیل، کلید API فایربیس شماست ، مطمئن شوید که کلید API الزامات زیر را برآورده میکند تا بتوانید آن را با خیال راحت در کد یا فایلهای پیکربندی خود قرار دهید. میتوانید موارد زیر را در پنل APIها و خدمات > اعتبارنامهها در کنسول Google Cloud تأیید کنید.
- این کلید API است که شما برای برنامه Firebase خود و فقط برای سرویسهای Firebase استفاده میکنید. این کلیدها معمولاً
Browser key (auto created by Firebase)یاAndroid key (auto created by Firebase)یاiOS key (auto created by Firebase)نامیده میشوند. - این کلید، تمام APIهای مورد نیاز مربوط به Firebase را که در لیست مجاز «محدودیتهای API» قرار دارند، داراست .
- هیچ API دیگری در فهرست مجاز «محدودیتهای API» خود ندارد . به طور خاص، این فهرست نباید شامل
Generative Language APIباشد.
همچنین، مطمئن شوید که Firebase Security Rules و App Check ، همانطور که برای محصولات Firebase مورد استفاده شما توصیه شده است، استفاده میکنید.
میتوانید جزئیات مربوط به کلیدهای API برای Firebase را بیاموزید و فهرستی از سوالات متداول را در «درباره استفاده و مدیریت کلیدهای API برای Firebase بیاموزید» بیابید.
بقیه این صفحه اطلاعات دقیقی در مورد کلیدهای API برای Firebase و همچنین لیستی از سوالات متداول در مورد این کلیدها ارائه میدهد.
برخلاف نحوهی معمول استفاده از کلیدهای API، کلیدهای API برای سرویسهای Firebase برای کنترل دسترسی به منابع backend استفاده نمیشوند ؛ این کار فقط با استفاده از Firebase Security Rules (برای کنترل اینکه کدام کاربران نهایی میتوانند به منابع دسترسی داشته باشند) و Firebase App Check (برای کنترل اینکه کدام برنامهها میتوانند به منابع دسترسی داشته باشند) قابل انجام است.
معمولاً، شما باید با دقت از کلیدهای API محافظت کنید (برای مثال، با استفاده از یک سرویس vault یا تنظیم کلیدها به عنوان متغیرهای محیطی)؛ با این حال، کلیدهای API برای سرویسهای Firebase برای قرار دادن در کد یا فایلهای پیکربندی check-in مشکلی ندارند.
اگرچه کلیدهای API برای سرویسهای Firebase برای قرار دادن در کد بیخطر هستند، اما باید آنها را بررسی کرده و محدودیتها و محدودیتهای مناسبی را برای آنها اعمال کنید .
یک پروژه Firebase میتواند کلیدهای API زیادی داشته باشد، اما هر کلید API فقط میتواند به یک پروژه Firebase مرتبط باشد.
فایربیس به طور خودکار کلیدهای API را برای پروژه شما ایجاد میکند وقتی که هر یک از موارد زیر را انجام دهید:
- ایجاد یک پروژه Firebase > ایجاد خودکار
Browser key - ایجاد یک برنامه اپل Firebase > ایجاد خودکار
iOS key - ایجاد یک برنامه اندروید Firebase > ایجاد خودکار
Android key
همچنین میتوانید کلیدهای API خودتان را در کنسول Google Cloud ایجاد کنید، مثلاً برای توسعه یا اشکالزدایی . در ادامهی این صفحه، دربارهی زمان توصیهی این کار بیشتر بدانید.
شما میتوانید تمام کلیدهای API پروژه خود را در پنل APIs & Services > Credentials در کنسول Google Cloud مشاهده و مدیریت کنید.
همچنین میتوانید در مکانهای زیر ببینید که کدام کلید API به طور خودکار با یک برنامه Firebase مطابقت دارد . به طور پیشفرض، تمام برنامههای Firebase پروژه شما برای یک پلتفرم مشابه (اپل، اندروید و وب) از یک کلید API مشابه استفاده میکنند.
برنامههای اپل فایربیس - کلید API منطبق خودکار را در فایل پیکربندی فایربیس،
، در فیلدGoogleService-Info.plist API_KEYپیدا کنید.برنامههای اندروید فایربیس - کلید API منطبق خودکار را در فایل پیکربندی فایربیس،
، در فیلدgoogle-services.json current_keyپیدا کنید.برنامههای وب فایربیس - کلید API منطبق خودکار را در شیء پیکربندی فایربیس، در فیلد
apiKeyپیدا کنید.
کلیدهای API برای Firebase برای شناسایی پروژه Firebase شما هنگام تعامل با سرویسهای Firebase یا Google استفاده میشوند. به طور خاص، از آنها برای مرتبط کردن درخواستهای API با پروژه شما برای سهمیهبندی و صدور صورتحساب استفاده میشود. آنها همچنین برای دسترسی به دادههای عمومی مفید هستند.
برای اکثر توسعهدهندگان و موارد استفاده، شما مستقیماً با این کلیدهای API تعامل ندارید. در عوض، وقتی برنامه شما یک API فایربیس را فراخوانی میکند که به یک کلید API ارائه شده توسط کلاینت موبایل یا وب نیاز دارد، برنامه شما به طور خودکار به دنبال یک کلید API در پیکربندی فایربیس برنامه شما میگردد. این پیکربندی هنگام اتصال برنامه شما به فایربیس به کدبیس برنامه شما اضافه شده است.
توجه داشته باشید که میتوانید کلید API برنامه خود را با استفاده از مکانیسمهای متفاوتی مانند گزینههای Firebase یا استفاده از متغیرهای محیطی، درون برنامه خود ارائه دهید.
همچنین، برای تعدادی از APIهای REST برای سرویسهای Firebase، ممکن است لازم باشد مقدار کلید API را به صورت صریح به عنوان پارامتر پرسوجو به فراخوانی ارسال کنید. این مثال نشان میدهد که چگونه میتوانید با استفاده از API Firebase Authentication درخواستی ارسال کنید:
https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=API_KEY
اگرچه لازم نیست با کلید API برای سرویسهای Firebase به عنوان یک راز رفتار کنید، اما باید محدودیتها و ضوابطی را که در این بخش توضیح داده شده است، بررسی و اعمال کنید.
وقتی فایربیس یک کلید API در پروژه شما ایجاد میکند، ما به طور خودکار "محدودیتهای API" را به آن کلید اضافه میکنیم. APIهای اضافه شده به این لیست مجاز، APIهای مرتبط با فایربیس هستند که از کلاینت میخواهند یک کلید API را همراه با فراخوانی ارائه دهد. توجه داشته باشید که اکثر APIهای مورد نیاز برای استفاده از سرویسهای فایربیس در واقع نیازی به قرار گرفتن در لیست مجاز کلیدهای API شما ندارند.
از آنجایی که فایربیس APIهای لازم را برای همه سرویسهای فایربیس اضافه میکند، لیست مجاز برای یک کلید API ممکن است شامل APIهایی برای محصولاتی باشد که شما استفاده نمیکنید. میتوانید APIها را از لیست مجاز حذف کنید، اما باید بسیار مراقب باشید که APIهای مورد نیاز برای فایربیس و سرویسهای فایربیس مورد استفاده خود را حذف نکنید (به لیست APIهای مرتبط با فایربیس که باید برای هر سرویس/محصول در لیست مجاز باشند مراجعه کنید). در غیر این صورت، هنگام فراخوانی سرویسهای فایربیس با خطا مواجه خواهید شد.
اگر Firebase Authentication مبتنی بر رمز عبور استفاده میکنید و شخصی کلید API شما را به دست آورد، تا زمانی که این دادهها توسط Firebase Security Rules محافظت شوند، نمیتوانند به هیچ یک از پایگاههای داده یا دادههای Cloud Storage پروژه Firebase شما دسترسی پیدا کنند. با این حال، آنها میتوانند از کلید API شما برای دسترسی به نقاط پایانی احراز هویت Firebase استفاده کرده و درخواستهای احراز هویت را علیه پروژه شما ارسال کنند.
برای کاهش احتمال سوءاستفادهی شخصی از کلید API برای انجام حملهی brute force، میتوانید سهمیهی پیشفرض نقاط پایانی identitytoolkit.googleapis.com را محدود کنید تا منعکسکنندهی انتظارات ترافیکی عادی برنامهی شما باشد. توجه داشته باشید که اگر این سهمیه را محدود کنید و برنامهی شما ناگهان کاربران بیشتری جذب کند، ممکن است تا زمانی که سهمیه را افزایش دهید، با خطاهای ورود به سیستم مواجه شوید. میتوانید سهمیههای API پروژهی خود را در کنسول Google Cloud تغییر دهید.
اگرچه کلیدهای API مورد استفاده برای سرویسهای Firebase معمولاً نیازی به محرمانه بودن ندارند، اما باید اقدامات احتیاطی بیشتری را در مورد کلیدهای API که با سایر APIهای Google Cloud استفاده میکنید، انجام دهید.
اگر از یک API Google Cloud (روی هر پلتفرمی) استفاده میکنید که برای سرویس/محصول فایربیس نیست، اکیداً توصیه میکنیم کلیدهای API جداگانه و محدود شدهای برای استفاده با آن APIها ایجاد کنید. این امر به ویژه در صورتی اهمیت دارد که API برای یک سرویس Google Cloud قابل پرداخت باشد.
با استفاده از کلیدهای API جداگانه و محدود برای APIهای غیر Firebase، میتوانید در صورت لزوم کلیدها را بچرخانید یا جایگزین کنید و محدودیتهای بیشتری را به کلیدهای API اضافه کنید بدون اینکه استفاده شما از سرویسهای Firebase مختل شود.
این دستورالعملها نحوه ایجاد یک کلید API جداگانه و محدود برای یک API جعلی به نام Super Service API را شرح میدهند.