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

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

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

تأكَّد أيضًا من استخدام Firebase Security Rules وApp Check على النحو المقترَح لمنتجات Firebase التي تستخدمها.

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

مراجعة واجهات برمجة التطبيقات التي تمت إضافتها تلقائيًا إلى القائمة المسموح بها لمفاتيح واجهة برمجة التطبيقات في 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 خاضعة للفوترة. على وجه الخصوص، لا تدرِج أبدًا Gemini Developer API في القائمة المسموح بها لمفتاح واجهة برمجة تطبيقات متاح للجميع أو مفتاح مستخدَم لخدمات أخرى.

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

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

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

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

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

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

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