كجزء من إضافة Firebase إلى مشروع Android، عليك إضافة المكوّن الإضافي Gradle وملف إعداد إلى مشروعك.
إذا أضفت Firebase إلى مشروع Android باستخدام وحدة تحكّم Firebase أو Management REST API أو واجهة سطر أوامر Firebase، عليك إضافة المكوّن الإضافي Gradle وملف إعداد JSON يدويًا إلى مشروعك. ومع ذلك، إذا كنت تستخدم Firebase Assistant for Android Studio، يتم تنفيذ هذه المهام تلقائيًا نيابةً عنك أثناء الإعداد.
إضافة مكوّن Gradle الإضافي
يمكنك إضافة المكوّن الإضافي Gradle لخدمات Google () إلى ملف build.gradle:
dependencies {
classpath 'com.google.gms:google-services:4.5.0'
// ...
}
يؤدي المكوّن الإضافي Gradle لخدمات Google وظيفتَين رئيسيتَين:
يعالج ملف الإعداد
وينشئ موارد Android التي يمكن استخدامها في الرمز البرمجي لتطبيقك.google-services.json تضيف هذه الخطوة تبعيات للمكتبات الأساسية المطلوبة للخدمات التي فعّلتها. تتطلّب هذه الخطوة تطبيق المكوّن الإضافي Gradle لخدمات Google في ملف
app/build.gradle، على النحو التالي:
apply plugin: 'com.google.gms.google-services'يمكنك الاطّلاع على نتيجة هذه الخطوة من خلال تشغيل
./gradlew :app:dependencies.
إضافة ملف إعداد JSON
يتم وضع ملف الإعداد بشكل عام في دليل app/ (في جذر وحدة تطبيق "استوديو Android"). اعتبارًا من الإصدار 2.2.0،
يتيح المكوّن الإضافي استخدام ملفات JSON الخاصة بنوع الإصدار وصيغة المنتج. جميع هياكل الدليل التالية صالحة:
// dogfood and release are build types.
app/
google-services.json
src/dogfood/google-services.json
src/release/google-services.json
...
عند استخدام نكهات المنتج، تكون هياكل الدليل الأكثر تعقيدًا هذه صالحة أيضًا.
// free and paid are product flavors.
app/
google-services.json
src/dogfood/paid/google-services.json
src/release/free/google-services.json
...
كيفية معالجة ملف الإعداد بتنسيق JSON
يحتوي ملف الإعداد على البنية الأساسية التالية:
{
"project_info": {...},
"client": [...],
}
يحتوي العنصر project_info على معلومات عامة عن مشروعك، بينما يحتوي كل عضو في مصفوفة client على معلومات عن العملاء (تطبيقات Android) التي أضفتها إلى المشروع.
عند معالجة ملف JSON لتطبيق Android، يستخدم المكوّن الإضافي فقط كائن
client الذي يتطابق مع اسم الحزمة (لنوع الإصدار الحالي)
استنادًا إلى المنطق التالي:
بالنسبة إلى كل عنصر في مصفوفة
client، يتحقّق المكوّن الإضافي من قيمةclient_info/android_client_info/package_name. إذا تطابق اسم الحزمة مع هذه القيمة، فسيتم عرض كائن العضو.إذا لم يتطابق أي من أعضاء
clientمع اسم الحزمة، سيُظهر المكوّن الإضافي استثناءً.
يستخدم الجزء المتبقي من هذا المستند YOUR_CLIENT للإشارة إلى عضو مصفوفة client الذي يحدده المنطق الموضّح أعلاه.
إنشاء ملفات XML
النتيجة الرئيسية لمعالجة JSON هي إنتاج ملفي XML يمكنك الإشارة إليهما كموارد Android في التعليمات البرمجية الخاصة بك. فيما يلي أمثلة على كل ملف:
app/build/generated/res/google-services/{build_type}/values/values.xml<?xml version="1.0" encoding="utf-8"?> <resources> <! -- Present in all applications --> <string name="google_app_id" translatable="false">1:1035469437089:android:73a4fb8297b2cd4f</string> <! -- Present in applications with the appropriate services configured --> <string name="gcm_defaultSenderId" translatable="false">1035469437089</string> <string name="default_web_client_id" translatable="false">337894902146-e4uksm38sne0bqrj6uvkbo4oiu4hvigl.apps.googleusercontent.com</string> <string name="ga_trackingId" translatable="false">UA-65557217-3</string> <string name="firebase_database_url" translatable="false">https://example-url.firebaseio.com</string> <string name="google_api_key" translatable="false">AIzbSyCILMsOuUKwN3qhtxrPq7FFemDJUAXTyZ8</string> <string name="google_crash_reporting_api_key" translatable="false">AIzbSyCILMsOuUKwN3qhtxrPq7FFemDJUAXTyZ8</string> <string name="project_id" translatable="false">mydemoapp</string> </resources>app/build/generated/res/google-services/{flavor}/{build_type}/xml/global_tracker.xml<?xml version="1.0" encoding="utf-8"?> <resources> <string name="ga_trackingId" translatable="false">UA-65557218-3</string> </resources>
القيم في ملفات XML
تتوفّر كل قيمة في ملفات XML في ملف إعداد في المواقع المدرَجة أدناه. إذا كان مشروع Android يتضمّن بعض الإعدادات التي تمنعك من استخدام المكوّن الإضافي Gradle، يمكنك إعادة إنشاء ملفات XML يدويًا بأمان باستخدام هذه القيم.
google_app_idYOUR_CLIENT/client_info/mobilesdk_app_idgcm_defaultSenderIdproject_info/project_numberdefault_web_client_idYOUR_CLIENT/oauth_client/client_id (client_type == 3)ga_trackingIdYOUR_CLIENT/services/analytics-service/analytics_property/tracking_idfirebase_database_urlproject_info/firebase_urlgoogle_api_keyYOUR_CLIENT/api_key/current_keygoogle_crash_reporting_api_keyYOUR_CLIENT/api_key/current_keyproject_idproject_info/project_id
تحديد المشاكل وحلّها
عند إنشاء التطبيق، تظهر لي رسالة الخطأ التالية: File google-services.json is missing from module root folder. The Google Services Plugin cannot function without it.
ستساعدك وحدة تحكّم Firebase
في تنزيل ملف إعداد .
بعد تنزيل ملف الإعداد ، انسخه إلى
مجلد app/ في مشروعك على "استوديو Android"، أو إلى
مجلد app/src/{build_type} إذا كنت تستخدم أنواع إصدارات متعددة.
لا يمكنني العثور على الرموز مثل R.string.gcm_defaultSenderId أو R.xml.global_tracker.
تأكَّد من أنّ اسم الحزمة في ملف build.gradle يتطابق مع اسم الحزمة
الذي أدخلته عند إنشاء ملف google-services.json. إذا لم تكن متأكدًا،
يمكنك تنفيذ خطوات البدء مرة أخرى والحصول على ملف JSON جديد.