Sebagai bagian dari penambahan Firebase ke project Android, Anda perlu menambahkan plugin Gradle dan file konfigurasi ke project Anda.
Jika menambahkan Firebase ke project Android menggunakan Firebase console, Management REST API, atau Firebase CLI, Anda harus menambahkan plugin Gradle dan file konfigurasi JSON secara manual ke project Anda. Namun, jika Anda menggunakan Firebase Assistant for Android Studio, tugas ini akan otomatis dilakukan selama proses penyiapan.
Menambahkan plugin Gradle
Tambahkan plugin Gradle layanan Google () ke file build.gradle:
dependencies {
classpath 'com.google.gms:google-services:4.5.0'
// ...
}
Plugin Gradle layanan Google memiliki dua fungsi utama:
Memproses file konfigurasi
dan menghasilkan resource Android yang dapat digunakan dalam kode aplikasi Anda.google-services.json Menambahkan dependensi untuk library dasar yang diperlukan untuk layanan yang telah Anda aktifkan. Langkah ini mengharuskan Anda menerapkan plugin Gradle layanan Google dalam file
app/build.gradle, seperti ini:
apply plugin: 'com.google.gms.google-services'Anda dapat melihat hasil langkah ini dengan menjalankan
./gradlew :app:dependencies.
Menambahkan file konfigurasi JSON
File konfigurasi umumnya ditempatkan di direktori app/ (di root modul aplikasi Android Studio). Mulai versi 2.2.0,
plugin mendukung file JSON khusus jenis build dan ragam produk. Semua struktur direktori berikut valid:
// dogfood and release are build types.
app/
google-services.json
src/dogfood/google-services.json
src/release/google-services.json
...
Saat ragam produk digunakan, struktur direktori yang lebih rumit ini juga valid.
// free and paid are product flavors.
app/
google-services.json
src/dogfood/paid/google-services.json
src/release/free/google-services.json
...
Cara file konfigurasi JSON diproses
File konfigurasi memiliki struktur dasar berikut:
{
"project_info": {...},
"client": [...],
}
Objek project_info berisi informasi umum tentang project Anda, sedangkan setiap anggota array client berisi informasi tentang klien (aplikasi Android) yang telah Anda tambahkan ke project.
Saat memproses file JSON untuk aplikasi Android, plugin hanya menggunakan objek client yang cocok dengan nama paket Anda (untuk jenis build saat ini) berdasarkan logika berikut:
Untuk setiap anggota array
client, plugin akan memeriksa nilaiclient_info/android_client_info/package_name. Jika nama paket cocok dengan nilai ini, objek anggota akan ditampilkan.Jika tidak ada anggota
clientyang cocok dengan nama paket, plugin akan menampilkan pengecualian.
Bagian selanjutnya dari dokumen ini menggunakan YOUR_CLIENT untuk
merujuk ke anggota array client yang ditentukan oleh logika yang dijelaskan
di atas.
Produksi file XML
Hasil utama pemrosesan JSON adalah menghasilkan dua file XML yang dapat Anda referensikan sebagai resource Android dalam kode Anda. Berikut adalah contoh setiap file:
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>
Nilai dalam file XML
Setiap nilai dalam file XML ada dalam file konfigurasi di lokasi yang tercantum di bawah. Jika project Android Anda memiliki beberapa konfigurasi yang mencegah Anda menggunakan plugin Gradle , Anda dapat membuat ulang file XML secara manual dengan aman menggunakan nilai ini.
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
Pemecahan masalah
Saat membangun, saya mendapatkan pesan error berikut: File google-services.json is missing from module root folder. The Google Services Plugin cannot function without it.
Firebase console
akan membantu Anda mendownload file konfigurasi .
Setelah mendownload file konfigurasi , salin file tersebut ke
folder app/ project Android Studio Anda, atau ke
folder app/src/{build_type} jika Anda menggunakan beberapa jenis build.
Saya tidak dapat menemukan simbol seperti R.string.gcm_defaultSenderId atau R.xml.global_tracker.
Pastikan nama paket dalam file build.gradle cocok dengan nama paket
yang Anda masukkan saat membuat file google-services.json. Jika Anda tidak yakin,
jalankan kembali alur memulai dan dapatkan file JSON baru.