تعرف على كيفية استخدام مفاتيح واجهة برمجة التطبيقات (API) وإدارتها لـ Firebase

مفتاح واجهة برمجة التطبيقات (API) عبارة عن سلسلة فريدة تُستخدم لتوجيه الطلبات إلى مشروع Firebase الخاص بك عند التفاعل مع Firebase وخدمات Google. تصف هذه الصفحة المعلومات الأساسية حول مفاتيح واجهة برمجة التطبيقات بالإضافة إلى أفضل الممارسات لاستخدام مفاتيح واجهة برمجة التطبيقات وإدارتها مع تطبيقات Firebase.

معلومات عامة حول مفاتيح API وFirebase

تختلف مفاتيح API الخاصة بـ Firebase عن مفاتيح API النموذجية

على عكس الطريقة التي يتم بها استخدام مفاتيح واجهة برمجة التطبيقات (API) عادةً، لا يتم استخدام مفاتيح واجهة برمجة التطبيقات (API) لخدمات Firebase للتحكم في الوصول إلى موارد الواجهة الخلفية ؛ لا يمكن القيام بذلك إلا باستخدام قواعد أمان Firebase (للتحكم في المستخدمين الذين يمكنهم الوصول إلى الموارد) وفحص التطبيقات (للتحكم في التطبيقات التي يمكنها الوصول إلى الموارد).

عادةً، تحتاج إلى حماية مفاتيح واجهة برمجة التطبيقات (API) بعناية (على سبيل المثال، باستخدام خدمة مخزن أو تعيين المفاتيح كمتغيرات بيئة)؛ ومع ذلك، يمكن تضمين مفاتيح واجهة برمجة التطبيقات (API) لخدمات Firebase في التعليمات البرمجية أو في ملفات التكوين التي تم تسجيل الوصول إليها.

على الرغم من أن مفاتيح واجهة برمجة التطبيقات (API) لخدمات Firebase آمنة لتضمينها في التعليمات البرمجية، إلا أن هناك بعض الحالات المحددة التي يجب عليك فيها فرض حدود على مفتاح واجهة برمجة التطبيقات (API) الخاص بك؛ على سبيل المثال، إذا كنت تستخدم Firebase ML، أو مصادقة Firebase باستخدام طريقة تسجيل الدخول بالبريد الإلكتروني/كلمة المرور، أو Google Cloud API القابلة للفوترة. تعرف على المزيد حول هذه الحالات لاحقًا على هذه الصفحة.

إنشاء مفاتيح API

يمكن أن يحتوي مشروع Firebase على العديد من مفاتيح واجهة برمجة التطبيقات، ولكن لا يمكن ربط كل مفتاح واجهة برمجة تطبيقات إلا بمشروع Firebase واحد.

مفاتيح واجهة برمجة التطبيقات (API) التي تم إنشاؤها تلقائيًا بواسطة Firebase لتطبيقات Firebase الخاصة بك

يقوم Firebase تلقائيًا بإنشاء مفاتيح واجهة برمجة التطبيقات لمشروعك عند القيام بأي مما يلي:

  • أنشئ مشروع Firebase > تم إنشاء Browser key تلقائيًا
  • قم بإنشاء تطبيق Firebase Apple > تم إنشاء iOS key تلقائيًا
  • قم بإنشاء تطبيق Firebase Android > تم إنشاء Android key تلقائيًا

يمكنك أيضًا إنشاء مفاتيح API الخاصة بك في وحدة تحكم Google Cloud ، على سبيل المثال للتطوير أو تصحيح الأخطاء . تعرف على المزيد حول متى قد يوصى بذلك لاحقًا في هذه الصفحة.

العثور على مفاتيح API الخاصة بك

يمكنك عرض وإدارة جميع مفاتيح واجهة برمجة التطبيقات الخاصة بمشروعك في واجهات برمجة التطبيقات والخدمات > لوحة بيانات الاعتماد في وحدة تحكم Google Cloud.

يمكنك أيضًا العثور على مفتاح واجهة برمجة التطبيقات (API) الذي يتم مطابقته تلقائيًا مع تطبيق Firebase في الأماكن التالية. افتراضيًا، ستستخدم جميع تطبيقات Firebase الخاصة بمشروعك لنفس النظام الأساسي (Apple vs Android vs Web) نفس مفتاح واجهة برمجة التطبيقات.

  • Firebase Apple Apps - ابحث عن مفتاح API المطابق تلقائيًا لأحد التطبيقات في ملف تكوين Firebase، GoogleService-Info.plist ، في الحقل API_KEY .

  • تطبيقات Firebase Android - ابحث عن مفتاح واجهة برمجة التطبيقات (API) المطابق تلقائيًا لأحد التطبيقات في ملف تكوين Firebase، google-services.json ، في الحقل current_key .

  • تطبيقات الويب من Firebase - ابحث عن مفتاح واجهة برمجة التطبيقات (API) المطابق تلقائيًا لأحد التطبيقات في كائن تكوين Firebase، في حقل apiKey .

باستخدام مفتاح API

تُستخدم مفاتيح واجهة برمجة التطبيقات لتحديد مشروع Firebase الخاص بك عند التفاعل مع خدمات Firebase/Google. على وجه التحديد، يتم استخدامها لربط طلبات واجهة برمجة التطبيقات (API) بمشروعك فيما يتعلق بالحصة والفوترة. كما أنها مفيدة للوصول إلى البيانات العامة.

على سبيل المثال، يمكنك استخدام مفتاح API بشكل صريح عن طريق تمرير قيمته إلى استدعاء REST API كمعلمة استعلام. يوضح هذا المثال كيف يمكنك تقديم طلب إلى واجهة برمجة تطبيقات اختصار الروابط الديناميكية :

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

عندما يقوم تطبيقك باستدعاء واجهة برمجة تطبيقات Firebase، سيبحث تطبيقك تلقائيًا في ملف/كائن تكوين Firebase عن مفتاح واجهة برمجة التطبيقات لمشروعك. ومع ذلك، يمكنك تعيين مفاتيح API الخاصة بك باستخدام آلية مختلفة، بما في ذلك متغيرات البيئة.

تطبيق القيود على مفاتيح واجهة برمجة التطبيقات (مستحسن)

على الرغم من أنه ليس من الضروري التعامل مع مفتاح واجهة برمجة التطبيقات (API) لخدمات Firebase باعتباره سرًا، إلا أن هناك بعض الحالات المحددة (انظر أدناه) التي قد ترغب فيها في اتخاذ إجراءات إضافية لحماية مشروعك من إساءة استخدام مفتاح واجهة برمجة التطبيقات (API).

قم بتشديد الحصة إذا كنت تستخدم المصادقة المستندة إلى كلمة المرور

إذا كنت تستخدم مصادقة Firebase المستندة إلى كلمة المرور وحصل شخص ما على مفتاح واجهة برمجة التطبيقات (API) الخاص بك، فلن يتمكن من الوصول إلى أي من قاعدة بيانات مشروع Firebase أو بيانات التخزين السحابي طالما أن هذه البيانات محمية بواسطة قواعد أمان Firebase . ومع ذلك، يمكنهم استخدام مفتاح واجهة برمجة التطبيقات (API) الخاص بك للوصول إلى نقاط نهاية مصادقة Firebase وتقديم طلبات مصادقة ضد مشروعك.

للتخفيف من احتمالية قيام شخص ما بإساءة استخدام مفتاح واجهة برمجة التطبيقات (API) لمحاولة شن هجوم عنيف، يمكنك تشديد الحصة الافتراضية لنقاط نهاية identitytoolkit.googleapis.com لتعكس توقعات حركة المرور العادية لتطبيقك. انتبه إلى أنه إذا قمت بتشديد هذه الحصة واكتسب تطبيقك فجأة مستخدمين، فقد تحصل على أخطاء في تسجيل الدخول حتى تقوم بزيادة الحصة. يمكنك تغيير حصص واجهة برمجة التطبيقات لمشروعك في وحدة تحكم Google Cloud .

استخدم مفاتيح API منفصلة ومقيدة لأنواع محددة من واجهات برمجة التطبيقات

على الرغم من أن مفاتيح واجهة برمجة التطبيقات المستخدمة لخدمات Firebase لا تحتاج عمومًا إلى التعامل معها على أنها سرية، إلا أنه يتعين عليك اتخاذ بعض الاحتياطات الإضافية مع مفاتيح واجهة برمجة التطبيقات المستخدمة لمنح الوصول إلى واجهات برمجة تطبيقات Google Cloud التي قمت بتمكينها يدويًا.

إذا كنت تستخدم Google Cloud API (على أي نظام أساسي) لم يتم تمكينه تلقائيًا بواسطة Firebase (بمعنى أنك قمت بتمكينه بنفسك)، فيجب عليك التفكير في إنشاء مفاتيح API منفصلة ومقيدة للاستخدام مع واجهات برمجة التطبيقات هذه. وهذا مهم بشكل خاص إذا كانت واجهة برمجة التطبيقات مخصصة لخدمة Google Cloud القابلة للفوترة.

على سبيل المثال، إذا كنت تستخدم واجهات برمجة تطبيقات Cloud Vision الخاصة بـ Firebase ML على نظام التشغيل iOS، فيجب عليك إنشاء مفاتيح API منفصلة تستخدمها فقط للوصول إلى واجهات برمجة تطبيقات Cloud Vision.

باستخدام مفاتيح API منفصلة ومقيدة لواجهات برمجة التطبيقات غير التابعة لـ Firebase، يمكنك تدوير المفاتيح أو استبدالها عند الضرورة وإضافة قيود إضافية إلى مفاتيح API دون تعطيل استخدامك لخدمات Firebase.

استخدام مفاتيح API الخاصة بالبيئة (مستحسن)

إذا قمت بإعداد مشاريع Firebase مختلفة لبيئات مختلفة، مثل التدريج والإنتاج، فمن المهم أن يتفاعل كل مثيل تطبيق مع مشروع Firebase المقابل له. على سبيل المثال، يجب ألا يتحدث مثيل التطبيق المرحلي مطلقًا مع مشروع Firebase للإنتاج. وهذا يعني أيضًا أن تطبيقك المرحلي يحتاج إلى استخدام مفاتيح واجهة برمجة التطبيقات (API) المرتبطة بمشروع Firebase المرحلي الخاص بك.

لتقليل مشكلات تعزيز تغييرات التعليمات البرمجية من التطوير إلى التدريج إلى الإنتاج، بدلاً من تضمين مفاتيح API في التعليمات البرمجية نفسها، قم بتعيينها كمتغيرات بيئة أو قم بتضمينها في ملف تكوين.

لاحظ أنه إذا كنت تستخدم Firebase Local Emulator Suite للتطوير مع Firebase ML، فيجب عليك إنشاء واستخدام مفتاح API لتصحيح الأخطاء فقط. تم العثور على تعليمات إنشاء هذا النوع من المفاتيح في مستندات Firebase ML .

الأسئلة الشائعة