معلومات عن استخدام مفاتيح واجهة برمجة التطبيقات وإدارتها لمنصة 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 مستندًا مستندًا إلى كلمة مرور وحصل شخص ما على مفتاح واجهة برمجة التطبيقات، لن يتمكّن من الوصول إلى أي من قاعدة بيانات مشروعك على Firebase أو بيانات Cloud Storage ما دامت هذه البيانات محمية باستخدام Firebase Security Rules. ومع ذلك، يمكنهم استخدام مفتاح واجهة برمجة التطبيقات للوصول إلى نقاط نهاية مصادقة Firebase وتقديم طلبات مصادقة ضد مشروعك.

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

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

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

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

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

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

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

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

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

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

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

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

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