Nous avons suivi le Ajouter Firebase à votre projet Android mais nous ne pouvons pas voir l'application recevoir des données dans la console Firebase.
Et lorsque nous lançons l'application, le journal indique:
FirebaseInitProvider: FirebaseApp initialization unsuccessful
Qu'est-ce que ça veut dire? Que faisons-nous de mal?
Je ne trouve pas cette erreur dans la documentation, ni ici dans StackOverflow.
Qu'est-ce que ça veut dire? Que faisons-nous de mal?
Supposerait que l'authentification n'a pas réussi.
a) les buildscript
repositories
et dependencies
pour le projet niveau build.gradle
:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
// Android Gradle Plugin
classpath "com.Android.tools.build:gradle:3.1.4"
// Google Services Plugin
classpath "com.google.gms:google-services:4.1.0"
}
}
b) la dependencies
du module niveau app/build.gradle
(une version antérieure des services Google Play peut toujours être installée sur les images Android Intel x10; par exemple, 10.2.0
s'exécute sur l'émulateur x86
actuel, tandis que par exemple, 11.8.0
est exécuté mon périphérique ARM
physique). référencer play-services
et firebase-core
inclura tout de leurs modules, à moins d’en exclure certains. update: il faut maintenant référencer toutes les bibliothèques individuellement. référencer com.google.Android.gms:play‐services
et com.google.firebase:firebase-core
ne fonctionne plus depuis 15.0.0
.
Android {
...
buildTypes {
debug {
// suffixing the package name for debug builds,
// in order to partially mute the crash-reporting
// is an *optional* configuration (see below):
applicationIdSuffix ".debug"
}
}
}
dependencies {
// Google Play Services
// https://developers.google.com/Android/guides/releases
api "com.google.Android.gms:play-services-base:15.0.1"
api "com.google.Android.gms:play-services-auth:16.0.0"
api "com.google.Android.gms:play-services-identity:15.0.1"
// Google Firebase
// https://firebase.google.com/support/release-notes/Android
api "com.google.firebase:firebase-core:16.0.1"
api "com.google.firebase:firebase-auth:16.0.3"
api "com.google.firebase:firebase-config:16.0.0"
api "com.google.firebase:firebase-storage:16.0.1"
api "com.google.firebase:firebase-database:16.0.1"
api "com.google.firebase:firebase-messaging:17.3.0"
api "com.google.firebase:firebase-appindexing:16.0.1"
api "com.google.firebase:firebase-functions:16.1.0"
api "com.google.firebase:firebase-invites:16.0.1"
// api "com.google.firebase:firebase-crash:16.0.1"
api "com.google.firebase:firebase-ads:15.0.1"
api "com.google.firebase:firebase-firestore:17.0.4"
api "com.google.firebase:firebase-perf:16.0.0"
// the inappmessaging may cause dependency conflicts:
// api "com.google.firebase:firebase-inappmessaging:17.0.0"
// api "com.google.firebase:firebase-inappmessaging-display:17.0.0"
}
c) la dernière ligne de mobile/build.gradle
devrait être:
// apply the Google Services Plugin
apply plugin: "com.google.gms.google-services"
d) assurez-vous d'avoir les informations d'identification (téléchargées) disponibles à app/google-services.json
; sur la console Firebase, il faut ajouter les deux SHA1 (ou SHA256) des hachages du débogage et les clés de version, pour que les deux versions s'authentifient correctement; une fois que tout correspond, il convient de signaler:
I/FirebaseInitProvider: FirebaseApp initialization successful
Tout est bien documenté, il suffit de consulter Configurer les services Google Play , Démarrage rapide de Firebase ou Rapport d'incident ; Je trouve cet article sur le blog Firebase plutôt utile: Organisation de vos versions d’applications Android compatibles Firebase , car il explique comment désactiver partiellement le signalement des pannes. Les notes de publication annoncent toujours les mises à jour et les modifications.
Cela se produit lorsque vous n'avez pas apply plugin: 'com.google.gms.google-services'
dans votre app/build.gradle
. Essayez de l'ajouter.
Assurez-vous également que le SDK des services Google Play est installé dans Android SDK Manager.
La première chose que je vous conseillerais de vérifier est:
1) Avez-vous inclus le <uses-permission Android:name="Android.permission.INTERNET" />
dans votre manifeste?
Assurez-vous que vous avez ajouté cette ligne au fichier de niveau d'application build.gradle
apply plugin: 'com.google.gms.google-services'
Tout le problème se produit pour deux raisons:
1. Vous n'avez pas pris de permission au mainfest
<uses-permission Android:name="com.google.Android.c2dm.permission.RECEIVE" />
<uses-permission Android:name="Android.permission.INTERNET" />
[entrez la description de l'image ici] [1]
2. votre version de compilation a un bug - Dépendance au niveau du projet
classpath 'com.google.gms:google-services:4.1.0'
remplacer par
classpath 'com.google.gms:google-services:4.0.1'
Dans mon cas, j'ai tout fait correctement à Gradle. Même s'il a montré FirebaseApp initialization unsuccessful
J'ai ajouté com.google.Android.c2dm.permission.RECEIVE permission
dans manifeste qui a résolu mon problème.
<uses-permission Android:name="com.google.Android.c2dm.permission.RECEIVE" />
<uses-permission Android:name="Android.permission.INTERNET" />
J'ai la même sortie Logcat.
Corrigé en mettant à jour ma Google Play Services
Dependency à 9.0.0 dans mon application/build.gradle
et mise à jour
buildScript {
//...
dependencies {
//...
classpath 'com.google.gms:google-services:3.0.0'
}
}
dans mon projet build.gradle à 3.0.0
Moi aussi, je faisais face à un problème similaire. J'avais importé mon projet de développeur Google dans Firebase et effectué toutes les étapes décrites dans les instructions de l'application de studio Android et de la console Firebase, c.-à-d. En ajoutant les dépendances, le fichier google-services.json et en reconstruisant.
Il n'enverrait toujours pas de données à la console Firebase. Ainsi, tout en parcourant le logcat, Firebase n'a pas pu s'initialiser car google_app_id semblait être manquant.
Après beaucoup d'essais et d'erreurs, j'ai dû ajouter une nouvelle ressource de chaîne dans mon fichier res/values/strings.xml
.
<string name="google_app_id">YOUR_GOOGLE_APP_ID</string>
L'ID Google App est disponible dans le fichier google_services.json que vous avez téléchargé à partir de la console Firebase sous l'en-tête mobilesdk_app_id
.
"client": [
{
"client_info": {
"mobilesdk_app_id": "SOMETHING"
}
.
.
.
Copiez le mobilesdk_app_id
et collez-le dans votre ressource chaîne dans le fichier res/values/strings.xml
portant le nom google_app_id
.
Reconstruisez le code et cela devrait fonctionner. :)
Dans mon cas, j’essayais de compiler sélectivement Google play Services . Au lieu d’utiliser
compile 'com.google.Android.gms:play-services:9.4.0'
comme décrit à l'adresse: https://developers.google.com/Android/guides/setup#ensure_devices_have_the_google_play_services_apk
J'ai ajouté manuellement des cartes et un autre module de dépendances à partir des services Google Play en tant que
compile 'com.google.Android.gms:play-services-maps:9.4.0'
compile 'com.google.Android.gms:play-services-places:9.4.0'
Malheureusement, Firebase a cessé de fonctionner après cela.
En conséquence, j'ai dû revenir en arrière et revenir à l'utilisation
compile 'com.google.Android.gms:play-services:9.4.0'
au lieu de sélectivement.