تعرَّف على كيفية استخدام مفاتيح واجهة برمجة التطبيقات وإدارتها في Firebase.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • تطبيقات الويب لمنصة Firebase: يمكنك البحث عن مفتاح واجهة برمجة التطبيقات الذي تتم مطابقته تلقائيًا في عنصر ضبط Firebase ضمن الحقل apiKey.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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