使用Google登录时出现Firebase错误。 12501 null

问题描述:

不知道为什么会发生这种情况。不断收到此错误使用Google登录时出现Firebase错误。 12501 null

使用Google登录时出错。 12501 null

也是这一个。

W/DynamiteModule:未找到com.google.firebase.auth的本地模块描述符类。

代码:

package com.workoutwager.workoutwager; 

import android.content.Intent; 
import android.support.annotation.NonNull; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.Toast; 

import com.firebase.ui.auth.AuthUI; 
import com.firebase.ui.auth.ui.ResultCodes; 
import com.google.firebase.auth.FirebaseAuth; 
import com.google.firebase.auth.FirebaseUser; 

import java.util.Arrays; 

public class MainActivity extends AppCompatActivity { 

    private FirebaseAuth mFirebaseAuth; 
    public static final int RC_SIGN_IN = 1; 
    private FirebaseAuth.AuthStateListener mAuthStateListener; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mFirebaseAuth= FirebaseAuth.getInstance(); 
     mAuthStateListener = new FirebaseAuth.AuthStateListener() { 
      @Override 
      public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 
       FirebaseUser user = firebaseAuth.getCurrentUser(); 
       if (user != null){ 
        //signed in 
        Intent intent = new Intent(MainActivity.this, LoginSuccess.class); 
        startActivity(intent); 


       } 
       else{ 
        //signed out 

        startActivityForResult(
          AuthUI.getInstance() 
            .createSignInIntentBuilder() 
            .setProviders(Arrays.asList(new AuthUI.IdpConfig.Builder(AuthUI.EMAIL_PROVIDER).build(), 
              new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build(), 
              new AuthUI.IdpConfig.Builder(AuthUI.FACEBOOK_PROVIDER).build())) 
            .setIsSmartLockEnabled(false) 
            .setLogo(R.drawable.logo) 
            .build(), 
          RC_SIGN_IN); 
       } 
      } 
     }; 

    } 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if (resultCode == RESULT_OK) { 
      // user is signed in! 
      startActivity(new Intent(this, LoginSuccess.class)); 
      finish(); 
      return; 
     } 

     // Sign in canceled 
     if (resultCode == RESULT_CANCELED) { 
      startActivity(new Intent(this, MainActivity.class)); 
      return; 
     } 

     // No network 
     if (resultCode == ResultCodes.RESULT_NO_NETWORK) { 
      Toast.makeText(MainActivity.this, "You are not connected", Toast.LENGTH_LONG).show(); 
      return; 
     } 

     // User is not signed in. Maybe just wait for the user to press 
     // "sign in" again, or show a message. 
    } 
    @Override 
    protected void onPause(){ 
     super.onPause(); 
     mFirebaseAuth.removeAuthStateListener(mAuthStateListener); 

    } 
    @Override 
    protected void onResume(){ 
     super.onResume(); 
     mFirebaseAuth.addAuthStateListener(mAuthStateListener); 
    } 
} 

摇篮:

apply plugin: 'com.android.application' 
apply plugin: 'com.google.gms.google-services' 
android { 
    compileSdkVersion 24 
    buildToolsVersion "25.0.0" 
    defaultConfig { 
     applicationId "com.workoutwager.workoutwager" 
     minSdkVersion 16 
     targetSdkVersion 24 
     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:24.2.1' 
    compile 'com.google.firebase:firebase-database:9.8.0' 
    compile 'com.google.firebase:firebase-auth:9.6.1' 
    compile 'com.firebaseui:firebase-ui-auth:1.0.0' 
    testCompile 'junit:junit:4.12' 
} 
+0

你在哪里遇到这个错误?这是否随机出现在您的日志中?还是有特定的步骤来重现它? –

有关模块的错误...你检查的prerequisites

  • 运行Android 2.3(姜饼)的设备或更新,并谷歌Play服务10.0.0或更新

  • 的谷歌存储库从Android SDK管理器

  • 的Android 1.5工作室或更高

尝试在gradle这些更新,让我们看看它是否工作:

  • com.google.firebase:火力数据库:10.0.0
  • com.google.firebase:火力-AUTH:10.0.0

这种说法您的应用程序/的build.gradle的MUST go at the bottom文件:

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

像这样:

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:24.2.1' 
    compile 'com.google.firebase:firebase-database:9.8.0' 
    compile 'com.google.firebase:firebase-auth:9.6.1' 
    compile 'com.firebaseui:firebase-ui-auth:1.0.0' 
    testCompile 'junit:junit:4.12' 
} 
apply plugin: 'com.google.gms.google-services' 

另外,正如@ anfuca的答案中所述,使用Firebase库的一致版本非常重要。另外,请使用firebase-ui-auth的兼容版本,如Firebase UI page表中所列。还请注意,该页面上的firebase-ui-authfirebase-auth具有运输依赖性。您不需要在您的依赖项中包含firebase-auth

我的经验是,下面的警告是无害的。我在和succussful AUTH动作之后看到它在我的日志:

W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found 

我解决了这个问题,在火力地堡将在项目设置的SHA1指纹,因为它是由谷歌需要登录:

设置为Android应用程序启用Google登录后,您需要在项目设置中为每个应用程序添加SHA1指纹。

为了得到这两个发布和调试证书按照Google APIs authentication guide

+0

我得到的稍微不同的错误信息是通过这个答案解决的,“E/GoogleProvider:Error with Google。10 null”。获取SHA1哈希的一种便捷方式是使用名为“signingReport”的gradle任务。 –

我有问题: Error logging in with Google. 10 null 和发现我错了选择使用谷歌play App Signing。然后解决方案是复制google play console中的SHA-1并将该值输入到Firebase项目设置中。