Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

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

معلومات عامة حول مفاتيح API و Firebase

تختلف مفاتيح API لـ Firebase عن مفاتيح API النموذجية

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

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

وعلى الرغم من مفاتيح API لخدمات Firebase هي آمنة للتدرج في التعليمات البرمجية، هناك عدد قليل من حالات محددة عندما يجب فرض حدود مفتاح API الخاص بك؛ على سبيل المثال ، إذا كنت تستخدم Firebase ML أو Firebase Authentication مع طريقة تسجيل الدخول بالبريد الإلكتروني / كلمة المرور أو Google Cloud API القابلة للفوترة. تعرف على المزيد حول هذه الحالات لاحقًا في هذه الصفحة.

إنشاء مفاتيح API

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

مفاتيح API التي تم إنشاؤها تلقائيًا بواسطة Firebase لتطبيقات Firebase

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

  • إنشاء مشروع Firebase> Browser key السيارات التي تم إنشاؤها
  • إنشاء Firebase لنظام التشغيل iOS> iOS key التي تم إنشاؤها السيارات
  • إنشاء Firebase الروبوت التطبيق> Android key لصناعة السيارات في خلق

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

البحث عن مفاتيح API الخاصة بك

يمكنك عرض وإدارة مفاتيح API عن مشروعك في واجهات برمجة التطبيقات والخدمات> وثائق التفويض لوحة في وحدة التحكم سحابة جوجل.

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

  • Firebase دائرة الرقابة الداخلية تطبيقات - العثور على مفتاح أحد التطبيقات المطابقة السيارات API في ملف التكوين Firebase، GoogleService-Info.plist ، في API_KEY المجال.

  • Firebase تطبيقات الروبوت - العثور على مفتاح API المطابقة السيارات التطبيق في ملف التكوين Firebase، google-services.json ، في current_key المجال.

  • Firebase تطبيقات الويب - العثور على مفتاح API في التطبيق المطابقة السيارات في كائن التكوين Firebase، في apiKey المجال.

باستخدام مفتاح API

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

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

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

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

فرض قيود على مفاتيح API (موصى به)

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

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

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

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

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

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

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

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

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

استخدام مفاتيح بيئة محددة API (موصى به)

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

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

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

أسئلة وأجوبة