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 penyiapan.
Tambahkan plugin Gradle
Anda menambahkan
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 berikut:
apply plugin: 'com.google.gms.google-services'Anda dapat melihat hasil langkah ini dengan menjalankan
./gradlew :app:dependencies.
Tambahkan file konfigurasi JSON
File konfigurasi umumnya ditempatkan di direktori app/ (di root modul aplikasi Android Studio). Mulai dari versi 2.2.0
plugin ini 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 varian 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 Anda, 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, fungsi akan menampilkan objek anggota.Jika tidak ada anggota
clientyang cocok dengan nama paket, plugin akan mengecualikan.
Bagian selanjutnya dari dokumen ini menggunakan YOUR_CLIENT untuk
merujuk ke anggota array client yang ditentukan oleh logika yang dijelaskan
di atas.
Pembuatan file XML
Hasil utama pemrosesan JSON adalah menghasilkan dua file XML yang dapat Anda rujuk 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 di 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.
Konsol Firebase akan membantu Anda mendownload file konfigurasi .
Setelah mendownload file konfigurasi , salin 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 di file build.gradle Anda cocok dengan nama paket yang Anda masukkan saat membuat file google-services.json. Jika Anda tidak yakin,
jalankan alur memulai lagi dan dapatkan file JSON baru.