0

Je suis nouveau sur le développement Android, donc pour implémenter l'authentification Firebase, j'utilise un livre ("Firebase Essentials Android Edition"). Je suivez les instructions pour utiliser le courrier électronique/authentification par mot de passe et il fonctionne, cependant, quand je mets à jourComment mettre à jour les dépendances lors de l'utilisation de l'authentification Firebase?

compile 'com.google.firebase:firebase-auth:11.0.1' 

à

compile 'com.google.firebase:firebase-auth:11.0.4' 

les méthodes pour vous déconnecter et supprimer le compte de travail d'arrêt, même si je peux encore Construire l'APK. Comment puis-je réparer ça? Mes paramètres gradle.build sont

// Top-level build file where you can add configuration options common to all sub-projects/modules. 

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.3.3' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
     classpath 'com.google.gms:google-services:3.0.0' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

`

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.1" 
    defaultConfig { 
     applicationId "com.doov.firetest" 
     minSdkVersion 16 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile 'com.android.support:appcompat-v7:25.3.1' 
    compile 'com.android.support.constraint:constraint-layout:1.0.2' 
    compile 'com.google.firebase:firebase-core:11.0.1' 
    compile 'com.firebaseui:firebase-ui-auth:2.0.1' 
    compile 'com.google.android.gms:play-services-maps:11.0.4' 
    testCompile 'junit:junit:4.12' 
} 

apply plugin: 'com.google.gms.google-services' 

Merci à l'avance

Répondre

1

com.google.firebase:firebase-auth est une dépendance transitive de com.firebaseui:firebase-ui-auth et n'a pas besoin d'être inscrit dans vos build.gradle dépendances. L'avoir dans vos dépendances crée des conflits de version potentiels. Le FirebaseUI documentation décrit les relations de dépendance transitives et fournit une table de versions compatibles. firebase-auth:11.0.4 n'est pas la version correcte pour firebase-ui-auth:2.0.1.

Supprimer cette ligne de vos dépendances:

compile 'com.google.firebase:firebase-auth:11.0.4' 

Cela permet firebase-ui-auth:x.x.x d'inclure la version correcte de firebase-auth.

En outre, si vous avez seulement besoin des capacités auth de FirebaseUI, ne comprennent que cette bibliothèque, tous FirebaseUI avec com.firebaseui:firebase-ui:x.x.x:

//compile 'com.firebaseui:firebase-ui:2.0.1' // <== not needed for only Auth 
compile 'com.firebaseui:firebase-ui-auth:2.0.1' 

Un autre changement est nécessaire. firebase-ui-auth:2.0.1 pour une raison quelconque a une dépendance transitive sur firebase-core:9.0. Cela semble être un bug. C'est la source de l'erreur Multiple dex files define Lcom/google/firebase/iid/zzb notée dans les commentaires. Ajoutez cette ligne pour forcer l'inclusion de la version correcte:

compile 'com.google.firebase:firebase-core:11.0.1' 
+0

Lorsque je supprime cette ligne et construire l'APK je reçois l'erreur suivante: Échec de l'exécution de la tâche »: l'application: transformClassesWithDexForDebug. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: plusieurs fichiers dex définissent Lcom/google/firebase/iid/zzb; PD: Lorsque j'utilise l'original (version 11.0.1), la construction fonctionne et la déconnexion et la suppression du compte fonctionnent toutes les deux. Lorsque je passe à 11.0.4, l'APK est toujours construit, mais la déconnexion et la suppression ne fonctionnent pas. –

+0

@LucianoFalco: Effectuez le changement, puis effectuez un nettoyage et recommencez la reconstruction. –

+0

J'ai supprimé la ligne, utilisé Build-> Clean Project, Build-> Reconstruire le projet, puis construit l'APK, mais j'ai la même erreur. –