معلومات عن استخدام مفاتيح واجهة برمجة التطبيقات وإدارتها لمنصة 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.

توضّح هذه التعليمات كيفية إنشاء مفتاح واجهة برمجة تطبيقات منفصل ومحدود لواجهة برمجة تطبيقات زائفة تُسمى Super Service API.

الخطوة 1: ضبط مفاتيح واجهة برمجة التطبيقات الحالية لحظر الوصول إلى Super Service API

  1. افتح صفحة بيانات الاعتماد في وحدة تحكّم Google Cloud. اختَر مشروعك عندما يُطلب منك ذلك.

  2. افتح طريقة عرض التعديل لكل مفتاح حالي لواجهة برمجة التطبيقات في القائمة.

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

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

لن تمنح مفاتيح واجهة برمجة التطبيقات الحالية إذن الوصول إلى Super Service API، ولكن سيستمر كل مفتاح في العمل مع أي واجهات برمجة تطبيقات أضفتها إلى قائمة قيود واجهة برمجة التطبيقات.

الخطوة 2: إنشاء مفتاح جديد لواجهة برمجة التطبيقات واستخدامه للوصول إلى Super Service API

  1. ارجع إلى صفحة بيانات الاعتماد. تأكَّد من أنّ مشروعك على Firebase لا يزال محدّدًا.

  2. انقر على إنشاء بيانات اعتماد > مفتاح واجهة برمجة التطبيقات. دوِّن مفتاح واجهة برمجة التطبيقات الجديد، ثم انقر على تقييد المفتاح.

  3. في قسم قيود واجهة برمجة التطبيقات، اختَر تقييد المفتاح، ثم أضِف إلى القائمة فقط الرمز Super Service API.

    لا يمنح مفتاح واجهة برمجة التطبيقات الجديد هذا إذن الوصول إلا إلى Super Service API.

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

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

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

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

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

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

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

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

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

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

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

يُرجى ملاحظة ما يلي حول كيفية تطبيق Firebase لهذه "قيود واجهات برمجة التطبيقات":

  • اعتبارًا من أيار (مايو) 2024، سيتم تلقائيًا حصر كل مفاتيح الواجهة البرمجية الجديدة التي يوفّرها Firebase بقائمة واجهات برمجة التطبيقات ذات الصلة بمنصّة Firebase.

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

  • لم يتم تغيير أي مفاتيح واجهة برمجة تطبيقات حالية وسبق أن تم حظرها وسبق أن أعدّتها Firebase تلقائيًا.

  • لم يتم تغيير أي مفاتيح واجهة برمجة التطبيقات الحالية التي لم يوفّرها Firebase تلقائيًا.

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

  1. انتقِل إلى إعدادات المشروع، ثم انتقِل للأسفل إلى بطاقة تطبيقاتك.

  2. اختَر التطبيق الذي يهمّك.

  3. احصل على ملف/عنصر إعدادات Firebase للتطبيق المعنيّ، ثم ابحث عن مفتاح واجهة برمجة التطبيقات:

    • Apple: نزِّل GoogleService-Info.plist، ثم ابحث عن الحقل API_KEY.

    • Android: نزِّل google-services.json، وابحث عن ملف الإعدادات للتطبيق المعنيّ (ابحث عن اسم الحزمة)، ثم ابحث عن الحقل current_key.

    • الويب: اختَر الخيار الإعداد، ثم ابحث عن الحقل apiKey.

  1. احصل على ملف/كائن إعدادات Firebase للتطبيق المعنيّ من خلال تنفيذ الأمر التالي:

    firebase apps:sdkconfig PLATFORM FIREBASE_APP_ID
  2. في إعدادات Firebase المطبوعة للتطبيق، ابحث عن مفتاح واجهة برمجة التطبيقات:

    • Apple: ابحث عن الحقل API_KEY.

    • Android: ابحث عن ملف الإعدادات للتطبيق المعنيّ (ابحث عن اسم الحزمة)، ثم ابحث عن الحقل current_key.

    • الويب: ابحث عن الحقل apiKey.

  1. احصل على apiKeyId (معرّف المستخدم الفريد) لمفتاح واجهة برمجة التطبيقات من خلال الاتصال بنقطة النهاية السارية للتطبيق المعنيّ، ثمّ نقْل قيمة apiKeyId إلى الخطوة التالية.

  2. يمكنك الحصول على سلسلة مفتاح واجهة برمجة التطبيقات من خلال الاتصال بـ projects.locations.keys.getKeyString.

    هذه القيمة keyString هي القيمة نفسها التي يمكن العثور عليها في عنصر الضبط للتطبيق (Apple | Android | الويب).

  • تطبيقات Firebase على أجهزة Apple: يحتوي كل تطبيق على ملف الإعداد الخاص به ويمكن أن يتضمّن مفتاح واجهة برمجة تطبيقات واحدًا فقط.

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

  • تطبيقات Firebase على الويب: يحتوي كل تطبيق على عنصر إعدادات خاص به ويمكن أن يتضمّن مفتاح واجهة برمجة تطبيقات واحدًا فقط.

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

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

إذا لم تعثر خدمة Firebase على أي مفاتيح محظورة مطابقة، ستُدرج في ملف الإعدادات/العنصر iOS key لتطبيقات Apple وAndroid key لتطبيقات Android وBrowser key لتطبيقات الويب (على افتراض أنّ هذه المفاتيح متوفّرة ولا تتضمّن "قيودًا على التطبيقات" تمنع مطابقتها مع هذا التطبيق).

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

نعم، يمكنك تعديل ملف/عنصر إعدادات يدويًا لربط مفتاح واجهة برمجة تطبيقات مختلف بتطبيق.

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

لا، يحدِّد مفتاح واجهة برمجة التطبيقات مشروعًا محدّدًا فقط ولا يمكن نقله إلى مشروع آخر.

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

إنّ حذف مفتاح واجهة برمجة التطبيقات إجراء نهائي ولا يمكن التراجع عنه.

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

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

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

اسم واجهة برمجة التطبيقات (اسم الخدمة) الاسم المعروض لواجهة برمجة التطبيقات
الخدمة أو المنتج المرتبطَين بمنصّة Firebase
firebase.googleapis.com Firebase Management API كل المنتجات
logging.googleapis.com Cloud Logging API كل المنتجات
firebaseinstallations.googleapis.com Firebase Installations API Cloud Messaging وCrashlytics وIn-App Messaging Performance Monitoring وRemote Config وFirebase ML
firebaseappcheck.googleapis.com Firebase App Check API App Check
firebaseappdistribution.googleapis.com Firebase App Distribution API App Distribution
firebaseapptesters.googleapis.com Firebase App Testers API App Distribution
identitytoolkit.googleapis.com واجهة برمجة تطبيقات Identity Toolkit Authentication
securetoken.googleapis.com واجهة برمجة التطبيقات Token Service API Authentication
firebaserules.googleapis.com * Firebase Rules API Cloud Firestore وCloud Storage وRealtime Database
datastore.googleapis.com واجهة برمجة تطبيقات Cloud Datastore Cloud Firestore
firestore.googleapis.com Google Cloud Firestore API Cloud Firestore
fcmregistrations.googleapis.com واجهة برمجة التطبيقات لتسجيل FCM Cloud Messaging
firebasestorage.googleapis.com Cloud Storage for Firebase API Cloud Storage
firebasedynamiclinks.googleapis.com Firebase Dynamic Links API Dynamic Links
firebasehosting.googleapis.com * Firebase Hosting API Hosting
firebaseinappmessaging.googleapis.com Firebase In-App Messaging API In-App Messaging
firebaseml.googleapis.com Firebase ML API Firebase ML
mlkit.googleapis.com ** واجهة برمجة تطبيقات ML Kit Firebase ML
mobilecrashreporting.googleapis.com Mobile Crash Reporting API Performance Monitoring
play.googleapis.com واجهة برمجة تطبيقات مطوّر برامج Google Play Android Performance Monitoring
firebaseremoteconfig.googleapis.com Firebase Remote Config API Performance Monitoring، Remote Config
firebaseremoteconfigrealtime.googleapis.com Firebase Remote Config Realtime API Performance Monitoring، Remote Config
cloudconfig.googleapis.com ** لا ينطبق Remote Config
firebasedatabase.googleapis.com * Firebase Realtime Database API Realtime Database
firebasevertexai.googleapis.com Vertex AI in Firebase API Vertex AI in Firebase

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

** مطلوبة للإصدارات السابقة من حزمة تطوير البرامج (SDK) الخاصة بالمنتج. إذا كنت تستخدم أحدث إصدار من حزمة SDK، لن تحتاج واجهة برمجة التطبيقات إلى أن تكون مُدرَجة في القائمة المسموح بها للمفتاح.

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

اتّبِع الإرشادات الواردة في الأسئلة الشائعة هذه إذا كنت تتلقّى API_KEY_SERVICE_BLOCKED خطأ أو خطأ يشبه ما يلي:

Forbidden: 403 POST https://example-service.googleapis.com/method: Requests to this API example-service.googleapis.com method google.example-service.rest.method are blocked.

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

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

في ما يلي بعض الأسباب الأكثر شيوعًا لمفتاحَي واجهة برمجة التطبيقات غير الصالحَين:

  • تم تطبيق "قيود مفتاح واجهة برمجة التطبيقات" على مفتاح واجهة برمجة التطبيقات، ما يجعله غير مطابق للتطبيق الذي يحاول استخدام المفتاح ("قيود التطبيق") أو غير قابل للاستخدام لواجهة برمجة التطبيقات التي يتم الاتصال بها ("قيود واجهة برمجة التطبيقات").

  • تم حذف مفتاح واجهة برمجة التطبيقات من المشروع في وحدة تحكّم Google Cloud.

  • لم يتم إنشاء مفتاح واجهة برمجة التطبيقات لمعرّف المشروع المدرَج فيملف/عنصر إعدادات Firebase للتطبيق.

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