یک کلید API یک رشته منحصر به فرد است که برای هدایت درخواستها به پروژه Firebase شما هنگام تعامل با Firebase و سرویسهای Google استفاده میشود. این صفحه اطلاعات اولیه در مورد کلیدهای API و همچنین بهترین روشها برای استفاده و مدیریت کلیدهای API با برنامههای Firebase را توضیح میدهد.
اطلاعات کلی در مورد کلیدهای API و Firebase
کلیدهای API برای Firebase با کلیدهای API معمولی متفاوت هستند
برخلاف نحوه استفاده از کلیدهای API، کلیدهای API برای سرویسهای Firebase برای کنترل دسترسی به منابع پشتیبان استفاده نمیشوند . که فقط با Firebase Security Rules (برای کنترل اینکه کاربران نهایی می توانند به منابع دسترسی داشته باشند) و Firebase App Check (برای کنترل برنامه هایی که می توانند به منابع دسترسی داشته باشند) انجام می شود.
معمولاً باید به دقت از کلیدهای API محافظت کنید (مثلاً با استفاده از سرویس خزانه یا تنظیم کلیدها به عنوان متغیرهای محیطی). با این حال، کلیدهای API برای سرویسهای Firebase برای گنجاندن در کد یا فایلهای پیکربندی تأییدشده مناسب هستند.
اگرچه کلیدهای API برای سرویسهای Firebase برای گنجاندن در کد بیخطر هستند، باید محدودیتها و محدودیتهای مناسب را برای آنها بررسی و اعمال کنید .
ایجاد کلیدهای API
یک پروژه Firebase میتواند کلیدهای API زیادی داشته باشد، اما هر کلید API فقط میتواند با یک پروژه Firebase مرتبط باشد.
وقتی یکی از کارهای زیر را انجام می دهید، Firebase به طور خودکار کلیدهای API را برای پروژه شما ایجاد می کند:
- یک پروژه Firebase ایجاد کنید >
Browser key
به طور خودکار ایجاد شد - یک برنامه Firebase Apple ایجاد کنید >
iOS key
به طور خودکار ایجاد می شود - یک برنامه Android Firebase ایجاد کنید >
Android key
به طور خودکار ایجاد شود
همچنین می توانید کلیدهای API خود را در کنسول Google Cloud ایجاد کنید، به عنوان مثال برای توسعه یا اشکال زدایی . در مورد زمانی که ممکن است بعداً در این صفحه توصیه شود، بیشتر بیاموزید.
پیدا کردن کلیدهای API
میتوانید تمام کلیدهای API پروژه خود را در APIs & Services > پنل اعتبارنامهها در کنسول Google Cloud مشاهده و مدیریت کنید.
همچنین در مکانهای زیر میتوانید بیابید کدام کلید API به طور خودکار با برنامه Firebase مطابقت دارد . به طور پیشفرض، همه برنامههای Firebase پروژه شما برای یک پلتفرم (Apple vs Android vs Web) از یک کلید 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 به عنوان پارامتر پرس و جو استفاده کنید. این مثال نشان میدهد که چگونه میتوانید به API کوتاهکننده پیوند Dynamic Links درخواست بدهید:
POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY
هنگامی که برنامه شما با یک API Firebase تماس می گیرد که نیاز به یک کلید API ارائه شده توسط سرویس گیرنده تلفن همراه/وب دارد، برنامه شما به طور خودکار در فایل پیکربندی Firebase/شیء کلید API پروژه شما جستجو می کند. با این حال، می توانید کلیدهای 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 Security Rules محافظت میشوند، نمیتوانند به هیچ یک از پایگاه داده پروژه Firebase یا دادههای Cloud Storage شما دسترسی داشته باشند. با این حال، آنها می توانند از کلید API شما برای دسترسی به نقاط پایانی احراز هویت Firebase و درخواست احراز هویت در برابر پروژه شما استفاده کنند.
برای کاهش احتمال سوء استفاده شخصی از یک کلید API برای حمله brute force، میتوانید سهمیه پیشفرض نقاط انتهایی identitytoolkit.googleapis.com
را محدود کنید تا انتظارات ترافیک عادی برنامه شما را منعکس کند. توجه داشته باشید که اگر این سهمیه را تشدید کنید و برنامه شما به طور ناگهانی کاربرانی پیدا کند، ممکن است تا زمانی که سهمیه را افزایش ندهید، با خطاهای ورود مواجه شوید. میتوانید سهمیههای API پروژه خود را در کنسول Google Cloud تغییر دهید.
برای هر سرویس غیر Firebase از کلیدهای API جداگانه و محدود استفاده کنید
اگرچه کلیدهای API مورد استفاده برای سرویسهای Firebase معمولاً نیازی به مخفی بودن ندارند، باید اقدامات احتیاطی بیشتری را در مورد کلیدهای API که با سایر APIهای Google Cloud استفاده میکنید، انجام دهید.
اگر از Google Cloud API (در هر پلتفرمی) استفاده میکنید که برای سرویس/محصول Firebase نیست، ما قویاً توصیه میکنیم کلیدهای API مجزا و محدود را برای استفاده با آن APIها ایجاد کنید. اگر API برای سرویس Google Cloud قابل پرداخت باشد، این امر به ویژه مهم است.
به عنوان مثال، اگر از Firebase ML و API های Cloud Vision در iOS استفاده می کنید، باید کلیدهای API جداگانه ای ایجاد کنید که فقط برای دسترسی به API های Cloud Vision استفاده می کنید.
با استفاده از کلیدهای API مجزا و محدود برای APIهای غیر Firebase، میتوانید در صورت لزوم کلیدها را بچرخانید یا جایگزین کنید و بدون ایجاد اختلال در استفاده از سرویسهای Firebase ، محدودیتهای اضافی به کلیدهای API اضافه کنید .
این دستورالعملها نحوه ایجاد یک کلید API مجزا و محدود برای یک API جعلی به نام Super Service API
را توضیح میدهند.
مرحله 1: کلیدهای API موجود خود را پیکربندی کنید تا دسترسی به Super Service API
ممنوع شود
صفحه اعتبارنامه کنسول Google Cloud را باز کنید. وقتی از شما خواسته شد، پروژه خود را انتخاب کنید.
برای هر کلید API موجود در لیست، نمای ویرایش را باز کنید.
در بخش محدودیتهای API ، Restrict key را انتخاب کنید، سپس همه APIهایی را که میخواهید کلید API به آنها دسترسی داشته باشد، به لیست اضافه کنید. اطمینان حاصل کنید که API را که برای آن یک کلید API جداگانه ایجاد میکنید (در این مثال،
Super Service API
) درج نکنید .وقتی محدودیتهای API کلید API را پیکربندی میکنید، به صراحت APIهایی را که کلید به آنها دسترسی دارد، اعلام میکنید. بهطور پیشفرض، زمانی که در بخش محدودیتهای API کلید Don't limited key انتخاب شده باشد، میتوان از یک کلید API برای دسترسی به هر API که برای پروژه فعال است استفاده کرد.
اکنون، کلیدهای API موجود شما اجازه دسترسی به Super Service API
را نمیدهند، اما هر کلید برای هر APIهایی که به فهرست محدودیتهای API اضافه کردهاید به کار خود ادامه میدهد.
مرحله 2: یک کلید API جدید برای دسترسی به Super Service API
ایجاد کنید و از آن استفاده کنید
به صفحه اعتبارنامه بازگردید. مطمئن شوید که پروژه Firebase شما هنوز انتخاب شده است.
روی ایجاد اعتبارنامه > کلید API کلیک کنید. کلید API جدید را یادداشت کنید، سپس روی Restrict key کلیک کنید.
در بخش محدودیتهای API ، Restrict key را انتخاب کنید، سپس فقط
Super Service API
به لیست اضافه کنید.این کلید API جدید فقط به
Super Service API
دسترسی می دهد.برنامه و خدمات خود را برای استفاده از کلید API جدید پیکربندی کنید.
استفاده از کلیدهای API مخصوص محیط (توصیه می شود)
اگر پروژههای Firebase مختلفی را برای محیطهای مختلف راهاندازی میکنید، مانند مرحلهبندی و تولید، مهم است که هر نمونه برنامه با پروژه Firebase مربوطه خود تعامل داشته باشد. به عنوان مثال، نمونه برنامه استیجینگ شما هرگز نباید با پروژه Firebase تولیدی شما صحبت کند. این همچنین به این معنی است که برنامه مرحلهبندی شما باید از کلیدهای API مرتبط با پروژه مرحلهبندی Firebase شما استفاده کند.
برای کاهش مشکلات ترویج تغییرات کد از توسعه به مرحلهبندی تا تولید، به جای قرار دادن کلیدهای API در خود کد، آنها را به عنوان متغیرهای محیطی تنظیم کنید یا در یک فایل پیکربندی قرار دهید.
توجه داشته باشید که اگر از Firebase Local Emulator Suite برای توسعه همراه با Firebase ML استفاده می کنید، باید یک کلید API فقط اشکال زدایی ایجاد کرده و از آن استفاده کنید. دستورالعمل های ایجاد این نوع کلید در اسناد Firebase ML یافت می شود.
سوالات متداول و عیب یابی
سوالات متداول
بله، بهطور پیشفرض، همه کلیدهای API که Firebase برای استفاده با APIهای مرتبط با Firebase فراهم میکند، «محدودیتهای API» را بهطور خودکار اعمال میکنند. فهرست API های مرتبط با Firebase را که در این لیست مجاز قرار دارند، ببینید.
APIهای اضافه شده به این لیست مجاز، آن دسته از APIهایی هستند که توسط سرویس های Firebase از کد مشتری فراخوانی می شوند و برای شناسایی پروژه یا برنامه Firebase شما به کلیدهای API نیاز دارند. توجه داشته باشید که اکثر API های مورد نیاز برای استفاده از سرویس های Firebase در واقع نیازی به قرار گرفتن در لیست مجاز کلیدهای API شما ندارند.
از آنجایی که Firebase API های لازم را برای همه سرویس های Firebase اضافه می کند، لیست مجاز برای یک کلید API ممکن است شامل API هایی برای محصولاتی باشد که شما استفاده نمی کنید. میتوانید APIها را از لیست مجاز حذف کنید، اما باید بسیار مراقب باشید که APIهای مورد نیاز برای Firebase و سرویسهای Firebase را که استفاده میکنید حذف نکنید ( لیست APIهای مرتبط با Firebase را که باید در لیست مجاز برای هر سرویس/محصول وجود داشته باشند، ببینید). در غیر این صورت، هنگام برقراری تماس با خدمات Firebase با خطا مواجه خواهید شد.
میتوانید همه کلیدهای API خود و «محدودیتهای API» آنها را در قسمت APIs & Services > Credentials در کنسول Google Cloud مشاهده کنید.
در مورد نحوه اعمال «محدودیتهای API» Firebase به موارد زیر توجه کنید:
از ماه مه 2024، همه کلیدهای API جدید ارائه شده توسط Firebase به طور خودکار به فهرست APIهای مرتبط با Firebase محدود می شوند.
در ماه می 2024، تمام کلیدهای API موجود و نامحدودی که Firebase قبلاً به صورت خودکار ارائه کرده بود، به فهرست APIهای مرتبط با Firebase به اضافه هر یک از APIهای فعال در حال حاضر پروژه محدود میشوند.
هیچ کلید API موجود و از قبل محدود شده ای که Firebase قبلاً به صورت خودکار ارائه کرده بود، تغییر نکرد.
کلیدهای API موجود که به صورت خودکار توسط Firebase ارائه نشده بودند، تغییر نکردند.
برای تعیین اینکه کدام کلید API با برنامه Firebase شما مرتبط است، می توانید از یکی از گزینه های زیر استفاده کنید:
کنسول Firebase
به تنظیمات پروژه بروید و سپس به سمت پایین به کارت برنامه های شما بروید.
برنامه مورد علاقه را انتخاب کنید.
فایل/شیء پیکربندی Firebase را برای برنامه مورد نظر دریافت کنید و سپس کلید API آن را پیدا کنید:
Apple :
GoogleService-Info.plist
را دانلود کنید و سپس قسمتAPI_KEY
پیدا کنیدAndroid :
google-services.json
را دانلود کنید، پیکربندی برنامه مورد نظر را پیدا کنید (نام بسته آن را جستجو کنید)، و سپس فیلدcurrent_key
پیدا کنید.Web : گزینه 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
را پیدا کنیدAndroid : پیکربندی برنامه مورد نظر را پیدا کنید (نام بسته آن را جستجو کنید)، و سپس فیلد
current_key
را پیدا کنیدوب : فیلد
apiKey
را پیدا کنید
REST API
apiKeyId
(UID) کلید API را با فراخوانی نقطه پایانی قابل اجرا برای برنامه مورد نظر، و سپس ارسال مقدارapiKeyId
به مرحله بعد، دریافت کنید.- اپل : با
projects.iosApps.get
تماس بگیرید - Android : با
projects.androidApps.get
تماس بگیرید - وب : با
projects.webApps.get
تماس بگیرید
- اپل : با
رشته کلید API را با فراخوانی
projects.locations.keys.getKeyString
دریافت کنید.این
keyString
همان مقداری است که در آرتیفکت پیکربندی برنامه ( اپل | اندروید | وب ) یافت می شود.
Firebase Apple Apps – هر برنامه فایل پیکربندی مخصوص به خود را دارد و می تواند تنها یک کلید API را در لیست داشته باشد.
برنامههای Android Firebase - همه برنامههای Android در پروژه Firebase در یک فایل پیکربندی فهرست شدهاند و هر برنامه فقط میتواند یک کلید API فهرست شده داشته باشد. با این حال، هر برنامه در این فایل پیکربندی میتواند یک کلید متفاوت در لیست داشته باشد.
برنامه های وب Firebase - هر برنامه دارای شی پیکربندی خاص خود است و می تواند فقط یک کلید API را در لیست داشته باشد.
با این حال، می توانید از چندین کلید API با یک برنامه استفاده کنید. شما باید مکانیزمی را برای برنامه خود فراهم کنید تا به این کلیدهای API دیگر دسترسی داشته باشد، مانند یک متغیر محیطی. مکانیسم دسترسی به سایر کلیدهای API نمی تواند به فهرست آن کلیدهای API در فایل/شیء پیکربندی Firebase بستگی داشته باشد.
هنگامی که برای اولین بار فایل/شیء پیکربندی Firebase برنامه خود را دریافت میکنید ، Firebase بررسی میکند که آیا کلیدهای API موجود در پروژه شما دارای «محدودیتهای برنامه» هستند که با برنامه مطابقت دارند (به عنوان مثال، شناسه بسته منطبق برای برنامه Apple).
اگر Firebase هیچ کلید محدودی را پیدا نکرد که مطابقت داشته باشد، iOS key
برای برنامههای Apple، Android key
برای برنامههای Android و Browser key
برای برنامههای وب را در فایل پیکربندی/اشیاء فهرست میکند (با فرض اینکه این کلیدها وجود داشته باشند و «محدودیتهای برنامه» نداشته باشند که مانع از تطبیق آنها با آن برنامه شود).
بله، میتوانید کلید API خود را به صورت دستی از فایل/شیء پیکربندی خود حذف کنید. با این حال، شما باید مکانیسم دیگری برای دسترسی برنامه خود به یک کلید API (مانند از طریق یک متغیر محیطی) فراهم کنید . در غیر این صورت، هر تماسی با خدمات Firebase ناموفق خواهد بود.
بله، میتوانید به صورت دستی یک فایل/شیء پیکربندی را ویرایش کنید تا یک کلید API دیگر را با یک برنامه مرتبط کنید.
توجه داشته باشید که اگر فایل/شیء پیکربندی برنامه خود را مجدداً از کنسول دریافت کنید، همیشه کلیدهای API را که Firebase به طور خودکار با آن برنامه مطابقت میدهد فهرست میکند. بنابراین، در صورت نیاز، باید ویرایش های دستی خود را تکرار کنید.
خیر، یک کلید API فقط یک پروژه خاص را شناسایی می کند و نمی تواند به پروژه دیگری منتقل شود.
اگر یک کلید API را که توسط یک برنامه استفاده می شود حذف کنید، تماس های API از آن برنامه با شکست مواجه می شوند. ممکن است گزارشها، ایمیلها یا خطاهایی دریافت کنید که میخواهید از کلید API استفاده کنید که نامعتبر است.
حذف یک کلید API دائمی است و قابل بازگشت نیست.
برای یک کلید API Firebase، تنها APIهایی که باید در لیست مجاز «محدودیتهای API» کلید قرار گیرند، APIهایی هستند که از مشتری میخواهند یک کلید API را همراه با تماس ارائه کند. توجه داشته باشید که تعداد بسیار کمی از APIهای مرتبط با Firebase این نیاز را دارند. لازم نیست اکثر APIهای مرتبط با Firebase که در پروژه شما فعال هستند در لیست مجاز "محدودیت های API" کلید قرار داشته باشند.
از جدول زیر برای تعیین اینکه کدام APIهای مرتبط با Firebase باید در لیست مجاز «محدودیتهای API» برای یک کلید API Firebase گنجانده شوند، استفاده کنید. به یاد داشته باشید، کلیدهای Firebase API فقط باید برای خدمات Firebase استفاده شوند. درباره ایجاد کلیدهای API مجزا و محدود برای انواع خاصی از API بیشتر بیاموزید.
میتوانید کلیدهای API پروژه خود را در APIs & Services > پنل اعتبارنامهها در کنسول Google Cloud مشاهده و مدیریت کنید.
نام API (نام سرویس) | نام نمایشی API | Firebase مرتبط خدمات / محصول |
---|---|---|
firebase.googleapis.com | Firebase Management API | همه محصولات |
logging.googleapis.com | Cloud Logging API | همه محصولات |
firebaseinstallations.googleapis.com | Firebase Installations API | Cloud Messaging ، Crashlytics ، In-App Messaging ، Performance Monitoring ، Remote Config ، Firebase ML |
firebaseappcheck.googleapis.com | Firebase App Check API | App Check |
firebaseappdistribution.googleapis.com | Firebase App Distribution API | App Distribution |
firebaseapptesters.googleapis.com | Firebase App Testers API | App Distribution |
identitettoolkit.googleapis.com | Identity Toolkit API | Authentication |
SecureToken.googleapis.com | Token Service API | Authentication |
firebaserules.googleapis.com * | Firebase Rules API | Cloud Firestore ، Cloud Storage ، Realtime Database |
datastore.googleapis.com | Cloud Datastore API | Cloud Firestore |
firestore.googleapis.com | Google Cloud Firestore API | Cloud Firestore |
fcmregistrations.googleapis.com | API ثبت FCM | Cloud Messaging |
firebasestorage.googleapis.com | Cloud Storage برای Firebase API | Cloud Storage |
firebasedynamiclinks.googleapis.com | Firebase Dynamic Links API | Dynamic Links |
firebasehosting.googleapis.com * | Firebase Hosting API | Hosting |
firebaseinappmessaging.googleapis.com | Firebase In-App Messaging API | In-App Messaging |
firebaseml.googleapis.com | Firebase ML API | Firebase ML |
mlkit.googleapis.com ** | ML Kit API | Firebase ML |
mobilecrashreporting.googleapis.com | API گزارش خرابی موبایل | Performance Monitoring |
play.googleapis.com | Google Play Android Developer API | Performance Monitoring |
firebaseremoteconfig.googleapis.com | Firebase Remote Config API | Performance Monitoring ، Remote Config |
firebaseremoteconfigrealtime.googleapis.com | Firebase Remote Config Realtime API | Performance Monitoring ، Remote Config |
cloudconfig.googleapis.com ** | N/A | Remote Config |
firebasedatabase.googleapis.com * | Firebase Realtime Database API | Realtime Database |
firebasevertexai.googleapis.com | Firebase AI Logic API | SDK های کلاینت AI Logic Firebase |
* فقط در صورت استفاده از کلید API Firebase با ابزارهای شخص ثالث یا دسترسی مستقیم REST به سرویس / محصول Firebase لازم است.
** برای نسخه های قبلی SDK محصول مورد نیاز است. اگر از آخرین نسخه SDK استفاده میکنید، نیازی نیست که API در لیست مجاز کلید باشد.
عیب یابی
اگر با یک خطای API_KEY_SERVICE_BLOCKED
یا خطایی شبیه به زیر میشوید، دستورالعملهای این پرسشهای متداول را دنبال کنید:
Forbidden: 403 POST https://example-service.googleapis.com/method: Requests to this API example-service.googleapis.com method google.example-service.rest.method are blocked.
کلید API که برنامه شما برای فراخوانی API استفاده میکند احتمالاً دارای «محدودیتهای API» است و فهرست مجاز کلید شامل آن API نمیشود.
اگر هنگام تلاش برای استفاده از سرویس/محصول مرتبط با Firebase با این خطا مواجه میشوید، مطمئن شوید که کلید API که استفاده میکنید دارای همه APIهای مورد نیاز موجود در فهرست مجاز «محدودیتهای API» کلید است .
اگر هنگام تلاش برای استفاده از یک سرویس غیر Firebase با این خطا مواجه میشوید، اکیداً توصیه میکنیم یک کلید API جدید مخصوصاً برای آن سرویس و API ایجاد کنید. کلیدهای Firebase API فقط باید برای خدمات / محصولات Firebase استفاده شوند. درباره ایجاد کلیدهای API مجزا و محدود برای انواع خاصی از API بیشتر بیاموزید.
کلید API استفاده شده توسط برنامه وب شما احتمالاً دارای "محدودیت های API" است. در این صورت، مطمئن شوید که Firebase Management API در لیست API های مجاز است.
در اینجا چند مورد از رایج ترین دلایل کلیدهای API نامعتبر آورده شده است:
کلید API دارای «محدودیتهای کلیدی API» روی آن اعمال شده است که باعث میشود آن را با برنامهای که تلاش میکند از کلید استفاده کند («محدودیتهای برنامه») یا برای API نامگذاری شده غیرقابل استفاده («محدودیتهای API») مطابقت نداشته باشد.
کلید API از پروژه در کنسول Google Cloud حذف شد.
کلید API برای شناسه پروژه فهرست شده در فایل/شیء پیکربندی Firebase برنامه ایجاد نشده است.
یکی از راه های رفع این مشکل این است که نسخه به روز شده فایل/شیء پیکربندی Firebase برنامه خود را دریافت کنید ، سپس فایل/شیء پیکربندی قدیمی خود را با فایل/شیء به روز شده جدید جایگزین کنید . قبل از ارسال یک فایل پیکربندی برای دانلود یا نمایش یک شیء پیکربندی در کنسول، Firebase بررسی میکند که کلید(های) API فهرست شده با برنامه(های) مطابقت داشته باشد .
،یک کلید API یک رشته منحصر به فرد است که برای هدایت درخواستها به پروژه Firebase شما هنگام تعامل با Firebase و سرویسهای Google استفاده میشود. این صفحه اطلاعات اولیه در مورد کلیدهای API و همچنین بهترین روشها برای استفاده و مدیریت کلیدهای API با برنامههای Firebase را توضیح میدهد.
اطلاعات کلی در مورد کلیدهای API و Firebase
کلیدهای API برای Firebase با کلیدهای API معمولی متفاوت هستند
برخلاف نحوه استفاده از کلیدهای API، کلیدهای API برای سرویسهای Firebase برای کنترل دسترسی به منابع پشتیبان استفاده نمیشوند . که فقط با Firebase Security Rules (برای کنترل اینکه کاربران نهایی می توانند به منابع دسترسی داشته باشند) و Firebase App Check (برای کنترل برنامه هایی که می توانند به منابع دسترسی داشته باشند) انجام می شود.
معمولاً باید به دقت از کلیدهای API محافظت کنید (مثلاً با استفاده از سرویس خزانه یا تنظیم کلیدها به عنوان متغیرهای محیطی). با این حال، کلیدهای API برای سرویسهای Firebase برای گنجاندن در کد یا فایلهای پیکربندی تأییدشده مناسب هستند.
اگرچه کلیدهای API برای سرویسهای Firebase برای گنجاندن در کد بیخطر هستند، باید محدودیتها و محدودیتهای مناسب را برای آنها بررسی و اعمال کنید .
ایجاد کلیدهای API
یک پروژه Firebase میتواند کلیدهای API زیادی داشته باشد، اما هر کلید API فقط میتواند با یک پروژه Firebase مرتبط باشد.
وقتی یکی از کارهای زیر را انجام می دهید، Firebase به طور خودکار کلیدهای API را برای پروژه شما ایجاد می کند:
- یک پروژه Firebase ایجاد کنید >
Browser key
به طور خودکار ایجاد شد - یک برنامه Firebase Apple ایجاد کنید >
iOS key
به طور خودکار ایجاد می شود - یک برنامه Android Firebase ایجاد کنید >
Android key
به طور خودکار ایجاد شود
همچنین می توانید کلیدهای API خود را در کنسول Google Cloud ایجاد کنید، به عنوان مثال برای توسعه یا اشکال زدایی . در مورد زمانی که ممکن است بعداً در این صفحه توصیه شود، بیشتر بیاموزید.
پیدا کردن کلیدهای API
میتوانید تمام کلیدهای API پروژه خود را در APIs & Services > پنل اعتبارنامهها در کنسول Google Cloud مشاهده و مدیریت کنید.
همچنین در مکانهای زیر میتوانید بیابید کدام کلید API به طور خودکار با برنامه Firebase مطابقت دارد . به طور پیشفرض، همه برنامههای Firebase پروژه شما برای یک پلتفرم (Apple vs Android vs Web) از یک کلید 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 به عنوان پارامتر پرس و جو استفاده کنید. این مثال نشان میدهد که چگونه میتوانید به API کوتاهکننده پیوند Dynamic Links درخواست بدهید:
POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY
هنگامی که برنامه شما با یک API Firebase تماس می گیرد که نیاز به یک کلید API ارائه شده توسط سرویس گیرنده تلفن همراه/وب دارد، برنامه شما به طور خودکار در فایل پیکربندی Firebase/شیء کلید API پروژه شما جستجو می کند. با این حال، می توانید کلیدهای 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 Security Rules محافظت میشوند، نمیتوانند به هیچ یک از پایگاه داده پروژه Firebase یا دادههای Cloud Storage شما دسترسی داشته باشند. با این حال، آنها می توانند از کلید API شما برای دسترسی به نقاط پایانی احراز هویت Firebase و درخواست احراز هویت در برابر پروژه شما استفاده کنند.
برای کاهش احتمال سوء استفاده شخصی از یک کلید API برای حمله brute force، میتوانید سهمیه پیشفرض نقاط انتهایی identitytoolkit.googleapis.com
را محدود کنید تا انتظارات ترافیک عادی برنامه شما را منعکس کند. توجه داشته باشید که اگر این سهمیه را تشدید کنید و برنامه شما به طور ناگهانی کاربرانی پیدا کند، ممکن است تا زمانی که سهمیه را افزایش ندهید، با خطاهای ورود مواجه شوید. می توانید سهمیه API پروژه خود را در کنسول Google Cloud تغییر دهید.
از کلیدهای API جداگانه و محدود برای هر سرویس غیر آتش سوزی استفاده کنید
اگرچه کلیدهای API مورد استفاده برای خدمات Firebase به طور کلی نیازی به درمان راز ندارند ، اما باید با کلیدهای API که با سایر API های Google Cloud استفاده می کنید ، اقدامات احتیاطی اضافی انجام دهید.
اگر از API Google Cloud (در هر سیستم عامل) استفاده می کنید که برای یک سرویس / محصول Firebase نیست ، ما اکیداً توصیه می کنیم کلیدهای API جداگانه و محدود را برای استفاده با آن API ها ایجاد کنید. این امر به ویژه در صورتی که API برای یک سرویس Google Cloud قابل پرداخت باشد ، بسیار مهم است.
به عنوان مثال ، اگر از Firebase ML و API های Cloud Vision در iOS استفاده می کنید ، باید کلیدهای API جداگانه ای ایجاد کنید که فقط برای دسترسی به API های Cloud Vision استفاده می کنید.
با استفاده از کلیدهای API جداگانه و محدود برای API های غیر آتش ، می توانید در صورت لزوم کلیدها را بچرخانید یا جایگزین کنید و محدودیت های اضافی را به کلیدهای API اضافه کنید بدون اینکه اختلال در استفاده شما از خدمات Firebase ایجاد شود.
این دستورالعمل ها نحوه ایجاد یک کلید API جداگانه و محدود برای یک API جعلی به نام Super Service API
را شرح می دهد.
مرحله 1: کلیدهای API موجود خود را پیکربندی کنید تا دسترسی به Super Service API
را مجاز نکنید
صفحه اعتبار کنسول Google Cloud را باز کنید. در صورت درخواست ، پروژه خود را انتخاب کنید.
برای هر کلید API موجود در لیست ، نمای ویرایش را باز کنید.
در بخش محدودیت های API ، کلید محدود را انتخاب کنید ، سپس به لیست API هایی که می خواهید کلید API دسترسی داشته باشد ، اضافه کنید. حتماً API را که در آن یک کلید API جداگانه ایجاد می کنید (در این مثال ،
Super Service API
) قرار ندهید .هنگامی که محدودیت های API یک کلید API را پیکربندی می کنید ، صریحاً API هایی را که کلید به آن دسترسی دارد اعلام می کنید. به طور پیش فرض ، هنگامی که بخش محدودیت های API کلید انتخاب شده را محدود نمی کند ، می توان از یک کلید API برای دسترسی به هر API که برای پروژه فعال است استفاده کرد.
اکنون ، کلیدهای API موجود شما به Super Service API
دسترسی نخواهند داشت ، اما هر کلید برای هر API که به لیست محدودیت های API اضافه کرده اید ، کار خود را ادامه خواهد داد.
مرحله 2: برای دسترسی به Super Service API
یک کلید جدید API ایجاد و استفاده کنید
بازگشت به صفحه اعتبارنامه . مطمئن باشید که پروژه Firebase شما هنوز انتخاب شده است.
روی ایجاد اعتبارنامه> کلید API کلیک کنید. به کلید جدید API توجه داشته باشید ، سپس روی محدود کردن کلید کلیک کنید.
در بخش محدودیت های API ، کلید محدود را انتخاب کنید ، سپس فقط
Super Service API
به لیست اضافه کنید.این کلید جدید API فقط به
Super Service API
دسترسی دارد.برنامه و خدمات خود را برای استفاده از کلید جدید API پیکربندی کنید.
از کلیدهای API خاص محیط استفاده کنید (توصیه می شود)
اگر پروژه های مختلف Firebase را برای محیط های مختلف مانند مرحله بندی و تولید تنظیم کرده اید ، مهم است که هر نمونه برنامه با پروژه مربوط به Firebase خود در تعامل باشد. به عنوان مثال ، نمونه برنامه مرحله بندی شما هرگز نباید با پروژه Firebase تولید شما صحبت کند. این همچنین بدان معنی است که برنامه مرحله بندی شما باید از کلیدهای API مرتبط با پروژه Firebase شما استفاده کند.
برای کاهش مشکلات ترویج تغییر کد از توسعه به مرحله بندی تا تولید ، به جای اینکه کلیدهای API را در خود کد درج کنید ، آنها را به عنوان متغیرهای محیط تنظیم کنید یا آنها را در یک فایل پیکربندی قرار دهید.
توجه داشته باشید که اگر از Firebase Local Emulator Suite برای توسعه به همراه Firebase ML استفاده می کنید ، باید یک کلید API فقط اشکال زدایی را ایجاد و استفاده کنید. دستورالعمل ایجاد آن نوع کلید در اسناد Firebase ML یافت می شود.
سوالات متداول و عیب یابی
سوالات متداول
بله ، به طور پیش فرض ، تمام کلیدهای API که برای استفاده از API های مربوط به Firebase برای استفاده از API های مربوط به Firebase استفاده می کنند ، "محدودیت های API" به طور خودکار اعمال می شوند. لیست API های مربوط به Firebase را که در این لیست مجاز قرار دارند ، ببینید.
API های اضافه شده به این لیست Allist آن دسته از API هایی هستند که توسط Firebase Services از Client-Code خوانده می شوند و برای شناسایی پروژه یا برنامه Firebase شما به کلیدهای API نیاز دارند. توجه داشته باشید که بیشتر API های مورد نیاز برای استفاده از خدمات Firebase در واقع نیازی به حضور در لیست API خود ندارند.
از آنجا که Firebase API های لازم را برای کلیه خدمات Firebase اضافه می کند ، لیست Allevlist برای یک کلید API ممکن است شامل API برای محصولاتی باشد که از آنها استفاده نمی کنید. شما می توانید API ها را از لیست Allemlist حذف کنید ، اما باید بسیار مراقب باشید که API های مورد نیاز برای Firebase و سرویس های Firebase را که استفاده می کنید حذف نکنید ( لیست API های مربوط به Firebase را ببینید که برای هر سرویس / محصول باید در لیست Allist قرار بگیرند). در غیر این صورت ، هنگام برقراری تماس با خدمات Firebase خطایی خواهید کرد.
شما می توانید تمام کلیدهای API و "محدودیت های API" آنها را در پانل APIS & Services > Credentials در کنسول Google Cloud مشاهده کنید.
در مورد نحوه استفاده از Firebase این "محدودیت های API" را یادداشت کنید:
با شروع از ماه مه 2024 ، تمام کلیدهای جدید API که توسط Firebase تهیه می شوند به طور خودکار به لیست API های مربوط به Firebase محدود می شوند.
در ماه مه 2024 ، تمام کلیدهای API موجود و نامحدود که قبلاً Firebase قبلاً ارائه شده بود ، به لیست API های مربوط به Firebase به علاوه هر یک از API های فعال در حال حاضر پروژه محدود شده اند.
هر کلیدهای API موجود و در حال حاضر محدود که Firebase قبلاً به صورت خودکار تهیه شده بود ، تغییر نکرده است.
هر کلیدهای API موجود که توسط Firebase به صورت خودکار تهیه نشده اند تغییر نکرده است.
می توانید از هر یک از گزینه های زیر استفاده کنید تا مشخص کنید کدام کلید API با برنامه Firebase شما در ارتباط است:
کنسول Firebase
به تنظیمات پروژه بروید و سپس به کارت برنامه های خود بروید.
برنامه مورد علاقه را انتخاب کنید.
پرونده/شیء پیکربندی Firebase را برای برنامه مورد علاقه بدست آورید و سپس کلید API خود را پیدا کنید:
اپل :
GoogleService-Info.plist
را بارگیری کنید ، و سپس قسمتAPI_KEY
را پیدا کنیدAndroid :
google-services.json
را بارگیری کنید ، پیکربندی برنامه مورد علاقه را پیدا کنید (به دنبال نام بسته آن باشید) ، و سپس قسمتcurrent_key
پیدا کنیدوب : گزینه پیکربندی را انتخاب کرده و سپس قسمت
apiKey
را پیدا کنید
پایگاه Firebase
با اجرای دستور زیر پرونده/شیء پیکربندی Firebase را برای برنامه مورد علاقه بدست آورید:
firebase apps:sdkconfig PLATFORM FIREBASE_APP_ID
- PLATFORM (یکی از):
IOS
|ANDROID
|WEB
- FIREBASE_APP_ID : شناسه منحصر به فرد برای برنامه Firebase برای برنامه Firebase خود ( شناسه برنامه خود را پیدا کنید )
- PLATFORM (یکی از):
در پیکربندی Firebase چاپ شده برنامه ، کلید API خود را پیدا کنید:
اپل : قسمت
API_KEY
را پیدا کنیدAndroid : پیکربندی برنامه مورد علاقه را پیدا کنید (به دنبال نام بسته آن باشید) ، و سپس قسمت
current_key
را پیدا کنیدوب : زمینه
apiKey
پیدا کنید
REST API
با فراخوانی نقطه پایانی قابل اجرا برای برنامه مورد علاقه ،
apiKeyId
(UID) کلید API را بدست آورید و سپس مقدارapiKeyId
را به مرحله بعدی منتقل کنید.- اپل : با
projects.iosApps.get
تماس بگیرید - Android : با
projects.androidApps.get
تماس بگیرید - وب :
projects.webApps.get
تماس بگیرید
- اپل : با
رشته کلید API را با فراخوانی
projects.locations.keys.getKeyString
بدست آورید.این
keyString
همان مقدار است که می توان در مصنوعات پیکربندی برنامه ( Apple | Android | Web ) یافت.
برنامه های Apple Firebase - هر برنامه فایل پیکربندی خاص خود را دارد و فقط می تواند یک کلید API را ذکر کند.
برنامه های Android Firebase - تمام برنامه های Android در پروژه Firebase در همان فایل پیکربندی ذکر شده اند و هر برنامه فقط می تواند یک کلید API را ذکر کند. هر برنامه در این پرونده پیکربندی می تواند کلید دیگری را ذکر کند.
برنامه های وب Firebase - هر برنامه دارای شیء پیکربندی خاص خود است و می تواند فقط یک کلید 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 Firebase ، تنها API هایی که باید در لیست "محدودیت های API" Key قرار بگیرند API ها هستند که مشتری را ملزم به ارائه کلید API به همراه تماس می کند. توجه داشته باشید که تعداد کمی از API های مربوط به Firebase این نیاز را دارند. بیشتر API های مربوط به Firebase که در پروژه شما فعال شده اند ، نیازی به حضور در لیست "محدودیت های API" کلید ندارند.
از جدول زیر استفاده کنید تا مشخص شود که API های مربوط به Firebase باید در لیست "محدودیت های API" برای یک کلید API Firebase قرار بگیرند. به یاد داشته باشید ، کلیدهای API Firebase فقط باید برای خدمات Firebase استفاده شوند. در مورد ایجاد کلیدهای API جداگانه و محدود برای انواع خاص API ها بیشتر بدانید.
می توانید کلیدهای API پروژه خود را در پانل APIS & Services > Credentials در کنسول Google Cloud مشاهده و مدیریت کنید.
نام API (نام سرویس) | نام نمایش API | پایگاه آتش نشانی خدمات / محصول |
---|---|---|
firebase.googleapis.com | API مدیریت Firebase | همه محصولات |
logging.googleapis.com | API ورود به سیستم ابر | همه محصولات |
FirebaseInstallations.googleapis.com | API نصب Firebase | Cloud Messaging ، Crashlytics ، In-App Messaging ، Performance Monitoring ، Remote Config ، Firebase ML |
firebaseappcheck.googleapis.com | برنامه Firebase API را بررسی کنید | App Check |
firebaseappdistribution.googleapis.com | API توزیع برنامه Firebase | App Distribution |
firebaseapptesters.googleapis.com | API API API FIREBASE | App Distribution |
IdentityToolkit.googleapis.com | ابزار هویت API | Authentication |
SecureToken.googleapis.com | API سرویس توکن | Authentication |
firebaserules.googleapis.com * | Firebase قوانین API | Cloud Firestore ، Cloud Storage ، Realtime Database |
datastore.googleapis.com | Cloud Datastore API | Cloud Firestore |
firestore.googleapis.com | Google Cloud Firestore API | Cloud Firestore |
fcmregistrations.googleapis.com | API ثبت نام FCM | Cloud Messaging |
firebasestorage.googleapis.com | ذخیره سازی ابری برای API Firebase | Cloud Storage |
firebasidynamiclinks.googleapis.com | پیوندهای پویا Firebase API | Dynamic Links |
firebasehosting.googleapis.com * | API میزبان Firebase | Hosting |
firebaseinappmessaging.googleapis.com | API پیام رسانی درون برنامه Firebase | In-App Messaging |
firebaseml.googleapis.com | Firebase ML API | Firebase ML |
mlkit.googleapis.com ** | ML Kit API | Firebase ML |
mobilecrashreporting.googleapis.com | API گزارش تصادف موبایل | Performance Monitoring |
play.googleapis.com | Google Play Android Developer API | Performance Monitoring |
firebaseremoteconfig.googleapis.com | API پیکربندی از راه دور Firebase | Performance Monitoring ، Remote Config |
firebaseremoteconfigrealtime.googleapis.com | پیکربندی Remote Remote Realtime API | Performance Monitoring ، Remote Config |
cloudconfig.googleapis.com ** | N/A | Remote Config |
firebasedatabase.googleapis.com * | پایگاه داده Firebase Realtime API | Realtime Database |
firebasevertexai.googleapis.com | Firebase AI Logic API | SDK های کلاینت AI Logic Firebase |
* فقط در صورت استفاده از کلید API Firebase با ابزارهای شخص ثالث یا دسترسی مستقیم به سرویس / محصول Firebase مورد نیاز است.
** برای نسخه های قبلی SDK محصول مورد نیاز است. اگر از آخرین نسخه SDK استفاده می کنید ، API نیازی به حضور در لیست Allist ندارد.
عیب یابی
اگر در حال دریافت خطای API_KEY_SERVICE_BLOCKED
یا خطایی هستید که مانند موارد زیر به نظر می رسد ، راهنمایی را در این سؤالات متداول دنبال کنید:
Forbidden: 403 POST https://example-service.googleapis.com/method: Requests to this API example-service.googleapis.com method google.example-service.rest.method are blocked.
کلید API که توسط برنامه شما برای تماس با API استفاده می شود ، احتمالاً دارای "محدودیت های API" است که روی آن اعمال می شود ، و لیست Allowlist Key شامل آن API نیست.
اگر هنگام تلاش برای استفاده از یک سرویس / محصول مربوط به Firebase ، این خطا را دریافت می کنید ، مطمئن شوید که کلید API که از آن استفاده می کنید تمام API های مورد نیاز موجود در لیست "محدودیت های API" کلید را درج کرده است .
اگر هنگام تلاش برای استفاده از یک سرویس غیر آتش ، این خطا را دریافت می کنید ، ما اکیداً توصیه می کنیم یک کلید جدید API را به طور خاص برای آن سرویس و API ایجاد کنید. کلیدهای API Firebase فقط باید برای خدمات / محصولات Firebase استفاده شوند. در مورد ایجاد کلیدهای API جداگانه و محدود برای انواع خاص API ها بیشتر بدانید.
کلید API که توسط برنامه وب شما استفاده می شود احتمالاً دارای "محدودیت های API" است که روی آن اعمال می شود. در این صورت ، اطمینان حاصل کنید که API مدیریت Firebase در لیست API های مجاز قرار دارد.
در اینجا چند مورد از مهمترین دلایل کلیدهای API نامعتبر آورده شده است:
کلید API دارای "محدودیت های کلید API" است که بر روی آن اعمال می شود و آن را برای برنامه برای استفاده از کلید ("محدودیت های کاربردی") یا غیرقابل استفاده برای API نامیده می شود ("محدودیت های API").
کلید API از پروژه در کنسول Google Cloud حذف شد.
کلید API برای شناسه پروژه ذکر شده در پرونده/شیء پیکربندی Firebase برنامه ایجاد نشده است.
یکی از راه های رفع این مشکل ، به دست آوردن نسخه به روز شده پرونده/شیء پیکربندی Firebase برنامه شما است ، سپس پرونده/شی پیکربندی قدیمی خود را با پرونده/شیء جدید به روز شده جایگزین کنید . قبل از ارسال فایل پیکربندی برای بارگیری یا نمایش یک شیء پیکربندی در کنسول ، Firebase بررسی می کند که کلید (های) ذکر شده API با برنامه (های) مطابقت دارد .