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

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

معلومات عامة حول مفاتيح واجهة برمجة التطبيقات وFirebase

تختلف مفاتيح واجهة برمجة التطبيقات في Firebase عن مفاتيح واجهة برمجة التطبيقات العادية

على عكس الطريقة التي تُستخدم بها مفاتيح واجهة برمجة التطبيقات عادةً، فإنّ مفاتيح واجهة برمجة التطبيقات لخدمات Firebase لا تُستخدم للتحكّم في إمكانية الوصول إلى موارد الخلفية، ولا يمكن إجراء ذلك إلا باستخدام Firebase Security Rules (للتحكّم في المستخدمين النهائيين الذين يمكنهم الوصول إلى الموارد) وFirebase App Check (للتحكّم في التطبيقات التي يمكنها الوصول إلى الموارد).

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

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

إنشاء مفاتيح واجهة برمجة التطبيقات

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

مفاتيح واجهة برمجة التطبيقات التي ينشئها Firebase تلقائيًا لتطبيقاتك على Firebase

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

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

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

العثور على مفاتيح واجهة برمجة التطبيقات

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

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

  • تطبيقات Apple على Firebase: ابحث عن مفتاح واجهة برمجة التطبيقات الذي تمّت مطابقته تلقائيًا في ملف إعداد Firebase، GoogleService-Info.plist، في الحقل API_KEY.

  • تطبيقات Android على Firebase: ابحث عن مفتاح واجهة برمجة التطبيقات الذي تمّت مطابقته تلقائيًا في ملف إعداد Firebase، google-services.json، في الحقل current_key.

  • تطبيقات الويب على Firebase: ابحث عن مفتاح واجهة برمجة التطبيقات الذي تمّت مطابقته تلقائيًا في عنصر إعدادات Firebase، في الحقل apiKey.

استخدام مفتاح واجهة برمجة التطبيقات

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

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

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

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

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

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

مراجعة واجهات برمجة التطبيقات التي تتم إضافتها تلقائيًا إلى القائمة المسموح بها لمفاتيح واجهة برمجة تطبيقات Firebase

عندما ينشئ Firebase مفتاح واجهة برمجة تطبيقات في مشروعك، نضيف تلقائيًا "قيود واجهة برمجة التطبيقات" إلى هذا المفتاح. واجهات برمجة التطبيقات المُضافة إلى هذه القائمة المسموح بها هي واجهات برمجة تطبيقات مرتبطة بخدمة Firebase وتتطلّب أن يقدّم العميل مفتاح واجهة برمجة التطبيقات مع الطلب. يُرجى العِلم أنّ معظم واجهات برمجة التطبيقات المطلوبة لاستخدام خدمات Firebase لا تحتاج إلى أن تكون في قائمة السماح لمفاتيح واجهة برمجة التطبيقات.

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

فرض قيود أكثر صرامة على الحصة إذا كنت تستخدم Authentication المستند إلى كلمة المرور

في حال استخدام Firebase Authentication المستند إلى كلمة المرور، لن يتمكّن أي شخص من الوصول إلى أي من قواعد البيانات أو بيانات Cloud Storage في مشروعك على Firebase إذا حصل على مفتاح واجهة برمجة التطبيقات، طالما أنّ هذه البيانات محمية بواسطة Firebase Security Rules. ومع ذلك، يمكنهم استخدام مفتاح واجهة برمجة التطبيقات للوصول إلى نقاط نهاية المصادقة في Firebase وإرسال طلبات مصادقة إلى مشروعك.

للحدّ من إمكانية إساءة استخدام مفتاح واجهة برمجة التطبيقات لمحاولة تنفيذ هجوم القوة العمياء، يمكنك تشديد الحصة التلقائية لنقاط نهاية identitytoolkit.googleapis.com لتعكس توقعات عدد الزيارات العادية لتطبيقك. يُرجى العِلم أنّه في حال تشديد هذه الحصة واكتسب تطبيقك فجأةً عددًا كبيرًا من المستخدمين، قد تظهر لك أخطاء في تسجيل الدخول إلى أن تزيد الحصة. يمكنك تغيير حصص واجهة برمجة التطبيقات الخاصة بمشروعك في وحدة تحكّم Google Cloud.

استخدام مفاتيح API منفصلة ومقيّدة لأي خدمة غير تابعة لـ Firebase

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

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

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

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

استخدام مفاتيح واجهة برمجة التطبيقات الخاصة بالبيئة (إجراء يُنصح به)

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

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

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

الأسئلة الشائعة وتحديد المشاكل وحلّها

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

تحديد المشاكل وحلّها