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

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

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

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

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

تحتاج عادةً إلى حماية مفاتيح واجهة برمجة التطبيقات بسرعة (على سبيل المثال، باستخدام خدمة Vault أو ضبط المفاتيح كمتغيّرات للبيئة) وَلَكِنْ يمكن تضمين مفاتيح واجهة برمجة التطبيقات لخدمات 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 مقابل الويب) مفتاح واجهة برمجة التطبيقات نفسه.

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

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

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

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

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

على سبيل المثال، يمكنك استخدام مفتاح واجهة برمجة التطبيقات صراحةً عن طريق تمرير قيمته إلى REST طلب بيانات من واجهة برمجة التطبيقات كمعلمة طلب بحث يوضّح هذا المثال كيفية إرسال طلب إلى 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 مستندات

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

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

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