Lorsque vous ajoutez Firebase à votre projet Android, vous devez ajouter le plug-in Gradle et un fichier de configuration à votre projet.
Si vous ajoutez Firebase à votre projet Android à l'aide de la console Firebase, de l'API REST Management ou de la CLI Firebase, vous devez ajouter manuellement le fichier de configuration JSON et le plug-in Gradle à votre projet. Toutefois, si vous utilisez Firebase Assistant for Android Studio, ces tâches sont effectuées automatiquement pour vous lors de la configuration.
Ajouter le plug-in Gradle
Ajoutez le plug-in Gradle des services Google () à votre fichier build.gradle :
dependencies {
classpath 'com.google.gms:google-services:4.5.0'
// ...
}
Le plug-in Gradle des services Google a deux fonctions principales :
Traite le fichier de configuration
et génère des ressources Android pouvant être utilisées dans le code de votre application.google-services.json Ajoute les dépendances pour les bibliothèques de base requises pour les services que vous avez activés. Cette étape nécessite que vous appliquiez le plug-in Gradle des services Google dans votre fichier
app/build.gradle, comme suit :
apply plugin: 'com.google.gms.google-services'Vous pouvez voir le résultat de cette étape en exécutant
./gradlew :app:dependencies.
Ajouter le fichier de configuration JSON
Le fichier de configuration est généralement placé dans le répertoire app/ (à la racine du module d'application Android Studio). À partir de la version 2.2.0, le plug-in est compatible avec les fichiers JSON spécifiques au type de compilation et à la variante du produit. Toutes les structures de répertoire suivantes sont valides :
// dogfood and release are build types.
app/
google-services.json
src/dogfood/google-services.json
src/release/google-services.json
...
Lorsque des variantes de produit sont utilisées, ces structures de répertoire plus complexes sont également valides.
// free and paid are product flavors.
app/
google-services.json
src/dogfood/paid/google-services.json
src/release/free/google-services.json
...
Traitement du fichier de configuration JSON
Le fichier de configuration présente la structure de base suivante :
{
"project_info": {...},
"client": [...],
}
L'objet project_info contient des informations générales sur votre projet, tandis que chaque membre du tableau client contient des informations sur les clients (applications Android) que vous avez ajoutés au projet.
Lors du traitement du fichier JSON de votre application Android, le plug-in n'utilise que l'objet client qui correspond au nom de votre package (pour le type de compilation actuel) en fonction de la logique suivante :
Pour chaque membre du tableau
client, le plug-in vérifie la valeur declient_info/android_client_info/package_name. Si le nom du package correspond à cette valeur, l'objet membre est renvoyé.Si aucun des membres de
clientne correspond au nom du package, le plug-in génère une exception.
Le reste de ce document utilise YOUR_CLIENT pour faire référence au membre du tableau client déterminé par la logique décrite ci-dessus.
Production de fichiers XML
Le principal résultat du traitement JSON est la production de deux fichiers XML que vous pouvez référencer en tant que ressources Android dans votre code. Voici des exemples de chaque fichier :
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>
Valeurs dans les fichiers XML
Chaque valeur des fichiers XML est présente dans le fichier de configuration aux emplacements listés ci-dessous. Si votre projet Android comporte une configuration qui vous empêche d'utiliser le plug-in Gradle , vous pouvez recréer manuellement les fichiers XML en utilisant ces valeurs.
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
Dépannage
Lors de la compilation, le message d'erreur suivant s'affiche : File google-services.json is missing from module root folder. The Google Services Plugin cannot function without it.
La console Firebase vous aidera à télécharger le fichier de configuration .
Une fois le fichier de configuration téléchargé, copiez-le dans le dossier app/ de votre projet Android Studio ou dans le dossier app/src/{build_type} si vous utilisez plusieurs types de compilation.
Je ne trouve pas les symboles R.string.gcm_defaultSenderId ou R.xml.global_tracker.
Assurez-vous que le nom du package dans votre fichier build.gradle correspond à celui que vous avez saisi lors de la création du fichier google-services.json. Si vous n'êtes pas sûr, recommencez le processus de démarrage et obtenez un nouveau fichier JSON.