为什么Android Firebase跳过身份验证活动

法里斯·卡波(Faris Kapo)

我正在将Firebase电子邮件/密码身份验证实施到新的android应用中。

该应用程序在大多数情况下都能正常运行,不同之处在于,当用户单击登录或注册这两个按钮之一时,该应用程序会跳过假定的活动,登录或注册,并直接进入mainActivity。

这是我写意图打开下一个活动的方式:-

mRegister.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(ChooseLogin.this, RegistrationActivity.class);
                startActivity(intent);
                finish();
                return;}});

我在调试中发现了两个可能与之相关的错误:-

W / zygote64:由于无法识别类加载器而跳过重复的类检查W / DynamiteModule:找不到com.google.firebase.auth的本地模块描述符类。

以及:-

W / DynamiteModule:找不到com.google.android.gms.crash的本地模块描述符类。

根据与我类似的问题的答案,我有:

  • 与Firebase助手核对后说我已连接。

    火力助手

  • 检查在Firebase控制台中我是否启用了电子邮件/密码登录

  • 在我的设备和仿真器上进行了检查,并且在两者上的行为均相同

  • 检查我是否使用了最新的'com.google.firebase:firebase-auth:11.6.0'

  • 检查Google Play服务是否正常'classpath'com.google.gms:google-services:3.1.0'

  • 甚至添加到清单请求中以获取互联网许可

  • 实施firebases crashylytics,并且无法捕获

  • 重新添加google.services.json文件,然后构建/重建项目

编辑(根据请求registrationActivity和logcat):

registrationActivity的onCreate:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        mAuth = FirebaseAuth.getInstance();

        fireBaseStateListener = new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
                Intent intent = new Intent(RegistrationActivity.this, MainActivity.class);
                startActivity(intent);
                    finish();
                    return;}};

   @Override
    protected void onStart() {
        super.onStart();
        mAuth.addAuthStateListener(fireBaseStateListener);
    }

Logcat:

11-23 11:58:59.652 12880-12880/com.sanruza.alpak.tinderlike I/zygote64: Late-enabling -Xcheck:jni
11-23 11:59:00.016 12880-12880/com.sanruza.alpak.tinderlike W/zygote64: Skipping duplicate class check due to unrecognized classloader
11-23 11:59:00.020 12880-12880/com.sanruza.alpak.tinderlike W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
11-23 11:59:00.027 12880-12880/com.sanruza.alpak.tinderlike W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
11-23 11:59:00.048 12880-12880/com.sanruza.alpak.tinderlike I/BiChannelGoogleApi: [FirebaseAuth: ] No Fallback module; NOT setting up for lazy initialization
11-23 11:59:00.091 12880-12914/com.sanruza.alpak.tinderlike W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
11-23 11:59:00.104 12880-12914/com.sanruza.alpak.tinderlike I/FirebaseAuth: [FirebaseAuth:] Loading module via FirebaseOptions.
11-23 11:59:00.104 12880-12914/com.sanruza.alpak.tinderlike I/FirebaseAuth: [FirebaseAuth:] Preparing to create service connection to gms implementation
11-23 11:59:00.118 12880-12917/com.sanruza.alpak.tinderlike I/DynamiteModule: Considering local module com.google.android.gms.flags:2 and remote module com.google.android.gms.flags:0
11-23 11:59:00.118 12880-12917/com.sanruza.alpak.tinderlike I/DynamiteModule: Selected local version of com.google.android.gms.flags
11-23 11:59:00.148 12880-12917/com.sanruza.alpak.tinderlike W/DynamiteModule: Local module descriptor class for com.google.android.gms.crash not found.
11-23 11:59:00.156 12880-12917/com.sanruza.alpak.tinderlike I/DynamiteModule: Considering local module com.google.android.gms.crash:0 and remote module com.google.android.gms.crash:10
11-23 11:59:00.157 12880-12917/com.sanruza.alpak.tinderlike I/DynamiteModule: Selected remote version of com.google.android.gms.crash, version >= 10
11-23 11:59:00.162 12880-12880/com.sanruza.alpak.tinderlike V/FA: Cancelling job. JobID: -385218149
11-23 11:59:00.171 12880-12880/com.sanruza.alpak.tinderlike V/FA: Registered activity lifecycle callback
11-23 11:59:00.172 12880-12880/com.sanruza.alpak.tinderlike I/FirebaseInitProvider: FirebaseApp initialization successful
11-23 11:59:00.205 12880-12921/com.sanruza.alpak.tinderlike V/FA: Collection enabled
彼得·哈达德

是的,由于以下原因,它直接进入了mainactivity:

mAuth = FirebaseAuth.getInstance();

    fireBaseStateListener = new FirebaseAuth.AuthStateListener() {
        @Override
        public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
            final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
            Intent intent = new Intent(RegistrationActivity.this, MainActivity.class);
            startActivity(intent);
                finish();
                return;}};

 @Override
   protected void onStart() {
      super.onStart();
      mAuth.addAuthStateListener(fireBaseStateListener);
   }

onStart 这个完成了: mAuth.addAuthStateListener(fireBaseStateListener);

因此它正在进入侦听器,并且由于您的代码中包含以下内容:

Intent intent = new Intent(RegistrationActivity.this, MainActivity.class);
startActivty(intent);

它直接进入MainActivity.class

做这个:

final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
      if(user!=null){ //if user is signed in
        Intent intent = new Intent(RegistrationActivity.this, MainActivity.class);
        startActivity(intent);
            finish();
        }
         else{
               Log.i("sign in", not signed in);
            }};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Xamarin Android:为什么对天蓝色活动目录进行身份验证不起作用

为什么 firebase 身份验证返回 null?

为什么我的 flutter firebase 身份验证有问题?

Firebase匿名身份验证(Android):终身?

Firebase身份验证所需的Android权限

Android-Firebase身份验证失败

Android Firebase SDK Github身份验证

Firebase 身份验证,在验证手机身份验证时崩溃,android

Firebase 身份验证定价中的“验证”是什么?

Android将Firebase身份验证对象传递给另一个活动以注销

无法通过Firebase身份验证进行身份验证-Android Studio

检查用户是否在Android的Firebase Google身份验证中首次通过身份验证

为什么从Firebase身份验证传递ID令牌时,此经过CORS身份验证的Google Cloud Function为什么返回403?

这段代码有什么作用?角度 Firebase 身份验证

Firebase身份验证用户存储在什么地理位置?

Java,Android,Firebase身份验证注销抛出NullPointerException

Firebase身份验证-开放源Android应用

Android-Firebase 身份验证令牌重置

用于Google登录的Android Firebase身份验证失败

使用Android AccountManager进行Firebase身份验证

注销时Firebase Facebook按钮android身份验证

android-Firebase Google身份验证用户未注销

Android Firebase-无需身份验证即可存储数据

如何设置Android Firebase电话身份验证的回调?

.java 文件中的 Android Firebase 身份验证错误

Firebase电话身份验证SMS代码null android

Firebase 身份验证在单独的类 android 中

KitKat 上的 Android Firebase 身份验证崩溃

Android:使用 Firebase 的 Facebook 身份验证无法启动