إذا كان تطبيق Android يستخدم إحدى واجهات برمجة تطبيقات السحابة الإلكترونية في Firebase ML، قبل تشغيل تطبيق جديد في قناة الإصدار العلني، عليك اتّخاذ بعض الخطوات الإضافية لمنع الوصول غير المصرح به إلى واجهة برمجة التطبيقات.
بالنسبة إلى تطبيقات الإنتاج، ستتأكّد من أنّ العملاء الذين تمت مصادقتهم فقط هم من يمكنهم ذلك الوصول إلى الخدمات السحابية. (يُرجى العِلم أنّه لا يمكن للأجهزة غير المزوّدة بإذن الوصول إلى الجذر فقط المصادقة باستخدام الطريقة الموضّحة).
بعد ذلك، عليك إنشاء مفتاح واجهة برمجة تطبيقات مخصّص لتصحيح الأخطاء يمكنك استخدامه بسهولة. أثناء الاختبار والتطوير.
1- تسجيل تطبيقات الإنتاج في Firebase
أولاً، عليك تسجيل تطبيقات الإنتاج في Firebase.
تأكَّد من توفُّر توقيعات SHA-1 لتطبيقك. ارجع إلى مصادقة العميل لمعرفة كيفية إجراء ذلك.
يُرجى الانتقال إلى "Firebase، ثم اختَر الإعدادات .
" إعدادات المشروع في وحدة تحكُّمانتقِل للأسفل إلى بطاقة تطبيقاتك، ثم اختَر تطبيق Android.
إضافة توقيع SHA-1 لتطبيقك إلى معلومات التطبيق
2- تقييد نطاق مفاتيح واجهة برمجة التطبيقات
بعد ذلك، يمكنك ضبط مفاتيح واجهة برمجة التطبيقات الحالية لمنع الوصول إلى Cloud Vision. واجهة برمجة التطبيقات:
افتح صفحة بيانات الاعتماد في وحدة تحكّم "Google Cloud" اختَر مشروعك عندما يُطلب منك ذلك.
افتح عرض التعديل لكل مفتاح واجهة برمجة تطبيقات حالي في القائمة.
في القسم قيود واجهة برمجة التطبيقات، اختَر تقييد المفتاح، ثم أضِف البيانات إلى قائمة بجميع واجهات برمجة التطبيقات التي تريد أن يصل إليها مفتاح واجهة برمجة التطبيقات. احرص علىعدم تضمين Cloud Vision API.
عند ضبط قيود واجهة برمجة التطبيقات لمفتاح واجهة برمجة التطبيقات، يعني ذلك أنّك تُعلن بوضوح عن واجهات برمجة التطبيقات التي يمكن للمفتاح الوصول إليها. بشكل افتراضي، عندما لا تستخدم واجهة برمجة التطبيقات القيود على عدم تقييد المفتاح، يمكن تحديد مفتاح واجهة برمجة التطبيقات يُستخدم للوصول إلى أي واجهة برمجة تطبيقات تم تفعيلها للمشروع.
والآن، لن تمنح مفاتيح واجهة برمجة التطبيقات الحالية إمكانية الوصول إلى خدمات تعلُّم الآلة في السحابة الإلكترونية، ولكن ستمنح كل في العمل على أي واجهات برمجة تطبيقات أضفتها إلى قيود واجهة برمجة التطبيقات. الحالية.
يُرجى العِلم أنّه في حال تفعيل أي واجهات برمجة تطبيقات إضافية في المستقبل، يجب إضافتها إلى قائمة قيود واجهة برمجة التطبيقات لمفتاح واجهة برمجة التطبيقات الساري.
3- إنشاء مفتاح واجهة برمجة تطبيقات مخصّص لتصحيح الأخطاء فقط واستخدامه
وأخيرًا، أنشئ مفتاح واجهة برمجة تطبيقات جديدًا لاستخدامه فقط في عملية التطوير. يمكن لـ Firebase ML استخدام مفتاح واجهة برمجة التطبيقات هذا للوصول إلى خدمات Google Cloud في البيئات التي يكون فيها التطبيق المصادقة، كما هو الحال عند التشغيل على أدوات المحاكاة.
أنشئ مفتاح واجهة برمجة تطبيقات جديدًا لاستخدامه في التطوير:
افتح صفحة بيانات الاعتماد في وحدة تحكّم "Google Cloud" اختَر مشروعك عندما يُطلب منك ذلك.
انقر على إنشاء بيانات اعتماد > مفتاح واجهة برمجة التطبيقات وتدوين ملاحظات حول واجهة برمجة التطبيقات الجديدة المفتاح. يسمح هذا المفتاح بالوصول إلى واجهة برمجة التطبيقات من التطبيقات التي لم تتم مصادقتها، وبالتالي الحفاظ على سرية هذا المفتاح
لضمان عدم تسريب مفتاح واجهة برمجة التطبيقات الجديد لتصحيح الأخطاء مع تطبيقك الذي تم إصداره، تحديد مفتاح واجهة برمجة التطبيقات لتصحيح الأخطاء في ملف بيان Android يُستخدم فقط لتصحيح الأخطاء إصدار:
إذا لم يكن لديك بيان تصحيح الأخطاء، أنشئ واحدًا بالنقر على ملف > جديد > غير ذلك > ملف بيان Android واختيار
debug
من مجموعات المصادر المستهدفة.في بيان تصحيح الأخطاء، أضِف التعريف التالي:
<application> <meta-data android:name="com.firebase.ml.cloud.ApiKeyForDebug" android:value="your-debug-api-key" /> </application>
في تطبيقك، اضبط Firebase ML لاستخدام مطابقة الملف المرجعي للشهادة مع ومصادقة العميل في مرحلة الإنتاج واستخدام مفاتيح واجهة برمجة التطبيقات - تصحيح الأخطاء مفتاح - فقط في إصدارات تصحيح الأخطاء:
Kotlin+KTX
val optionsBuilder = FirebaseVisionCloudImageLabelerOptions.Builder() if (!BuildConfig.DEBUG) { // Requires physical, non-rooted device: optionsBuilder.enforceCertFingerprintMatch() } // Set other options. For example: optionsBuilder.setConfidenceThreshold(0.8f) // ... // And lastly: val options = optionsBuilder.build() FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage)
Java
FirebaseVisionCloudImageLabelerOptions.Builder optionsBuilder = new FirebaseVisionCloudImageLabelerOptions.Builder(); if (!BuildConfig.DEBUG) { // Requires physical, non-rooted device: optionsBuilder.enforceCertFingerprintMatch(); } // Set other options. For example: optionsBuilder.setConfidenceThreshold(0.8f); // ... // And lastly: FirebaseVisionCloudImageLabelerOptions options = optionsBuilder.build(); FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage);
الخطوات التالية
يمكنك الاطّلاع على قائمة التحقق للإطلاق للحصول على معلومات حول إعداد تطبيقك لإطلاقه عند استخدام ميزات Firebase الأخرى.