المصادقة باستخدام حساب خدمة

تكون حسابات الخدمة مفيدة لإعداد ميزة App Distribution في بيئة CI. تسمح لك المصادقة باستخدام حساب خدمة باستخدام مكتبات العملاء (على سبيل المثال، واجهة سطر الأوامر في Firebase و"واجهة سطر الأوامر" في Firebase و"واجهة سريعة" لـ Firebase) لتوزيع الإنشاءات. عند استخدام حساب خدمة للمصادقة، يستخدم Firebase بيانات الاعتماد التلقائية للتطبيق (ADC) لتحديد مكان بيانات اعتماد التطبيق، والتي يمكنك توفيرها من خلال ضبط متغيّر بيئة GOOGLE_APPLICATION_CREDENTIALS أو من خلال الإشارة إلى مسار مفتاح حساب الخدمة في رمز التطبيق.

  1. افتح وحدة تحكُّم Google Cloud واختَر مشروعك.
  2. انقر على إنشاء حساب الخدمة وأدخِل تفاصيل حساب الخدمة.
  3. انقر على إنشاء ومتابعة.
  4. أضِف دور مشرف توزيع التطبيقات على Firebase وانقر على تم.
  5. أنشئ مفتاح JSON خاصًا وانقل المفتاح إلى مكان يمكن الوصول إليه من خلال بيئة الإنشاء. احرص على الاحتفاظ بهذا الملف في مكان آمن، لأنّه يمنح المشرف إمكانية الوصول إلى ميزة "توزيع التطبيقات" في مشروع Firebase.
  6. تخطّي هذه الخطوة إذا أنشأت تطبيقك بعد 20 أيلول (سبتمبر) 2019: في وحدة تحكُّم Google APIs، فعِّل Firebase App Distribution API. اختَر المشروع الذي يحمل الاسم نفسه المستخدَم في مشروع Firebase عندما يُطلب منك ذلك.

  7. قدِّم بيانات اعتماد حساب الخدمة:

    • بالنسبة إلى Gradle فقط: في ملف build.gradle، اضبط السمة serviceCredentialsFile على ملف JSON للمفتاح الخاص:

      android {
      
          // ...
      
          buildTypes {
              release {
                  firebaseAppDistribution {
                      serviceCredentialsFile="/absolute/path/to/credentials/file.json"
                      releaseNotesFile="/path/to/releasenotes.txt"
                      testers="ali@example.com, bri@example.com, cal@example.com"
                  }
              }
          }
      
          // ...
      
      }
      

      يمكنك بدلاً من ذلك تقديم بيانات الاعتماد لرمز تطبيقك باتّباع الخطوة أدناه.

    • بالنسبة إلى واجهة سطر الأوامر في Firebase أو Fastlane أو Gradle: يجب ضبط متغير البيئة GOOGLE_APPLICATION_CREDENTIALS على مسار المفتاح الخاص ملف JSON:

      export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json