كجزء من عملية إضافة Firebase إلى مشروع Android، عليك إضافة
المكوّن الإضافي لنظام Gradle و
ملف إعداد إلى مشروعك.
إذا أضفت Firebase إلى مشروع Android باستخدام Firebase وحدة التحكّم أو Management REST API أو Firebase واجهة سطر الأوامر، عليك إضافة إضافة Gradle وملف إعداد JSON إلى مشروعك يدويًا. ومع ذلك، إذا كنت تستخدم Firebase Assistant for Android Studio، يتم تنفيذ هذه المهام تلقائيًا نيابةً عنك أثناء عملية الإعداد.
إضافة مكوّن Gradle الإضافي
يمكنك إضافة المكوّن الإضافي في خدمات Google لأداة Gradle () إلى ملف build.gradle:
dependencies {
classpath 'com.google.gms:google-services:4.5.0'
// ...
}
للمكوّن الإضافي في خدمات Google لأداة Gradle وظيفتان رئيسيتان:
تعالج هذه الأداة ملف الإعداد
وتنتج موارد Android يمكن استخدامها في الرمز البرمجي لتطبيقك.google-services.json تضيف هذه السمة التبعيات الخاصة بالمكتبات الأساسية المطلوبة للخدمات التي فعّلتها. تتطلّب هذه الخطوة تطبيق المكوّن الإضافي في خدمات Google لأداة Gradle في ملف
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 جديد.