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

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

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

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

https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=API_KEY

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

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

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

  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 أو الويب).

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

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

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

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

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

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

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

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

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

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

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

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

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

استخدِم الجدول التالي لتحديد واجهات برمجة التطبيقات ذات الصلة بمنصة Firebase التي يجب تضمينها في قائمة السماح ضمن "قيود واجهة برمجة التطبيقات" لمفتاح واجهة برمجة تطبيقات Firebase. يُرجى العِلم أنّه يجب استخدام مفاتيح واجهة برمجة التطبيقات في Firebase لخدمات 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 API 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 API Cloud Firestore
firestore.googleapis.com Google Cloud Firestore API Cloud Firestore
fcmregistrations.googleapis.com FCM Registration API 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 Firebase AI Logic API حِزم تطوير البرامج (SDK) للعملاء Firebase AI Logic

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

** مطلوبة للإصدارات السابقة من حزمة تطوير البرامج (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 من أنّ مفاتيح واجهة برمجة التطبيقات المُدرَجة تتطابق مع التطبيقات.