Google is committed to advancing racial equity for Black communities. See how.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

حماية بيانات اعتماد سحابة تطبيق Firebase ML Android

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

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

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

1. سجّل تطبيقات الإنتاج في Firebase

أولاً ، سجّل تطبيقات الإنتاج في Firebase.

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

عند ربط مشاريعك ، يتم استيراد توقيعات SHA-1 الخاصة بتطبيقات الإنتاج إلى مشروع Firebase ، والتي يمكنك تأكيدها في صفحة الإعدادات . لاحظ أن ربط مشاريع Firebase و Google Play الخاصة بك يجعل أيضًا بيانات Google Play الأخرى ، بما في ذلك إحصاءات التعطل والإيرادات ، يمكن الوصول إليها من خلال Firebase وبيانات Firebase ، بما في ذلك التحليلات ، ويمكن الوصول إليها من Google Play.

بدلاً من ذلك ، إذا كنت لا ترغب في مشاركة البيانات بين مشاريع Firebase و Google Play ، فيمكنك تحديد توقيعات SHA-1 لتطبيقاتك بنفسك في صفحة الإعدادات. راجع مصادقة العميل لمعرفة كيفية الحصول على توقيعات SHA-1 لتطبيقاتك.

2. تقييد نطاق مفاتيح API الخاصة بك

بعد ذلك ، قم بتكوين مفاتيح API الحالية الخاصة بك لعدم السماح بالوصول إلى Cloud Vision API:

  1. افتح صفحة بيانات الاعتماد الخاصة بوحدة التحكم السحابية.

  2. لكل مفتاح واجهة برمجة تطبيقات في القائمة ، افتح طريقة عرض التحرير ، وفي قسم قيود المفاتيح ، أضف جميع واجهات برمجة التطبيقات المتاحة باستثناء Cloud Vision API إلى القائمة.

3. إنشاء واستخدام مفتاح API للتصحيح فقط

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

  1. قم بإنشاء مفتاح API جديد لاستخدامه في التطوير:

    1. افتح صفحة بيانات الاعتماد الخاصة بوحدة التحكم السحابية.
    2. انقر فوق إنشاء بيانات اعتماد> مفتاح API ولاحظ مفتاح API الجديد. يتيح هذا المفتاح الوصول إلى واجهة برمجة التطبيقات من التطبيقات غير المصادق عليها ، لذا حافظ على سرية هذا المفتاح .
  2. لضمان عدم تسريب مفتاح واجهة برمجة التطبيقات لتصحيح الأخطاء الجديد مع تطبيقك الذي تم إصداره ، حدد مفتاح واجهة برمجة التطبيقات لتصحيح الأخطاء في ملف بيان Android المستخدم فقط لإصدارات تصحيح الأخطاء:

    1. إذا لم يكن لديك بيان تصحيح بالفعل ، فأنشئ بيانًا بالنقر فوق ملف> جديد> آخر> ملف بيان Android وتحديد debug من مجموعات المصدر الهدف.

    2. في بيان تصحيح الأخطاء ، أضف التصريح التالي:

      <application>
      <meta-data
          android:name="com.firebase.ml.cloud.ApiKeyForDebug"
          android:value="your-debug-api-key" />
      </application>
      
  3. في تطبيقك ، هيئ Firebase ML لاستخدام مطابقة بصمة الشهادة لمصادقة عميلك في الإنتاج واستخدام مفاتيح API - مفتاح التصحيح - فقط في إصدارات التصحيح:

    جافا

    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);

    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)

الخطوات التالية

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