当前位置: 首页 > 知识库问答 >
问题:

为什么我的android studio应用在运行时会跳过登录和注册页面?

子车才捷
2023-03-14

我正在开发一个android应用程序,但当我运行该应用程序时,它跳过了注册和登录页面,直接转到主页面。我使用firebase进行身份验证,但我找不到问题?

我已尝试删除此代码:

    Intent intent = new Intent(RegistrationActivity.this,       MainActivity.class);
                startActivity(intent);
                finish();
                return;

    mAuth = FirebaseAuth.getInstance();
    firebaseAuthStateListener = new 
    FirebaseAuth.AuthStateListener() {

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

注册activity打开了,但当我尝试注册时,它没有注册我!

这是RegistrationActivity.java

    package com.simoder.tinder;

    import androidx.annotation.NonNull;
    import androidx.appcompat.app.AppCompatActivity;

    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.RelativeLayout;
    import android.widget.Toast;

    import com.google.android.gms.tasks.OnCompleteListener;
    import com.google.android.gms.tasks.Task;
    import com.google.firebase.auth.AuthResult;
    import com.google.firebase.auth.FirebaseAuth;
    import com.google.firebase.auth.FirebaseUser;

    public class RegistrationActivity extends AppCompatActivity {


private Button mRegister;
private EditText mEmail, mPassword;
private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener firebaseAuthStateListener;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_registration);

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


    mRegister = (Button) findViewById(R.id.register);

    mEmail = (EditText) findViewById(R.id.email);
    mPassword = (EditText) findViewById(R.id.password);

    mRegister.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            final String email = mEmail.getText().toString();
            final String password = mPassword.getText().toString();
            mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(RegistrationActivity.this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (!task.isSuccessful()) {
                        Toast.makeText(RegistrationActivity.this, "sign up error", Toast.LENGTH_SHORT);
                    }

                }
            });

        }
    });


}


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

@Override
protected void onStop() {
    super.onStop();
    mAuth.removeAuthStateListener(firebaseAuthStateListener);
}
}

这是AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.simoder.tinder">



<uses-permission android:name="android.permission.INTERNET"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="tinder"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    tools:ignore="GoogleAppIndexingWarning">
    <activity android:name=".LoginActivity"/>
    <activity android:name=".RegistrationActivity" />
    <activity android:name=".MainActivity" />

<activity android:name=".ChooseLoginRegistrationActivity">

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

</activity>
</application>

这是运行日志

08/22 19:19:38:正在启动应用程序$adb shell am start-n“com.simoder.tinder/com.simoder.tinder.ChooseLoginRegistrationActivity”-a Android.Intent.Action.Main-c Android.Intent.Category.Launcher客户端尚未就绪。正在等待进程联机连接到设备模拟器上的进程6929-5554捕获并显示来自应用程序的logcat消息。可以在“调试器”设置页的“logcat输出”部分禁用此行为。V/FA:已注册的activity生命周期回调,使用/DynamiteModule:未找到com.google.firebase.auth的本地模块描述符类。I/FireBaseInitProvider:FirebaseApp初始化成功v/fa:onActivityCreated w/DynamiteModule:未找到com.google.firebase.auth的本地模块描述符类。w/.simode.tinde:访问隐藏方法landroid/view/view;->ComputeFitSystemWindows(landroid/graphics/rect;landroid/graphics/rect;)Z(light greylist,reclection)w/.simode.tinde:访问隐藏方法landroid/view/viewGroup;->MakeOptionalFitsSystemWindows()V(light greylist,reclection)i/FireBaseAuth:[FireBaseAuth:]准备创建到gms实现的服务连接d/opengrendererD/OpenGlengRenderer:交换行为0 d/EGL_Emulation:EGLCreateContext:0xE8D05660:maj 3分钟0 rcv 3 D/EGL_Emulation:EGLMakeCurrent:0xE8D05660:ver 3 0(tinfo 0xE8D03BB0)V/FA:已启用收集的应用程序包,google app ID:com.simoder.tinder,1:361954020021:Android:E29700D74FEE181E D/EGL_Emulation:EGLMakeCurrent:0xE8D05660:ver 3 0(tinfo 0xE8D03BB0)I/FA:App测量正在启动,版本:18102要启用调试日志记录,请运行:adb shell setprop log.tag.fa详细启用更快的调试模式事件日志记录运行:adb shell setprop debug.firebase.analytics.app com.simoder.tinder D/FA:已启用调试级消息日志记录V/FA:正在连接到远程服务I/.siModer.tinde:后台并发复制GC释放了33445(5MB)分配空间对象,20(568KB)丢失对象,50%免费,2MB/4MB,暂停5.099 ms总计122.920 ms V/FA:连接尝试已在进行I/FA:找不到标记管理器,因此不会使用d/fa:日志记录事件(FE):screen_view(_vs),bundle[{firebase_event_origin(_o)=自动,firebase_screen_class(_sc)=ChooseLoginRegistrationActivity,firebase_screen_id(_si)=-5627487735175610182}]v/fa:连接尝试已在进行v/fa:activity恢复,时间:3469652 d/fa:连接到远程服务v/fa:正在处理排队的服务任务:4 v/fa:记录用户参与,MS:2121 w/activitythread:handlewindowvisibility:令牌Android.os.BinderProxy@3AD9909没有activity v/fa:activity暂停,时间:3471749 v/fa:onActivityCreated d/fa:日志事件2,firebase_screen_class(_sc)=RegistrationActivity,firebase_screen_id(_si)=-2870007480556052360}]d/egl_emulation:eglmakeCurrent:0xE8D05660:ver 3 0(tinfo 0xE8D03BB0)d/egl_emulation:eglmakeCurrent:0xE8D05660:ver 3 0(tinfo 0xE8D03BB0)w/activityThread:HandleWindowVisibility:令牌Android.os.BinderProxy没有activity@C00C693 v/fa:

共有1个答案

龚沛
2023-03-14

问题应该来自这行代码

  if(user != null)

请尝试删除那一行代码,然后再试一次。我在学习pluralsight教程时遇到了类似的问题。

 类似资料:
  • 维尤斯。PY 这是 views.py 我可以登录但无法登录,它显示无效凭据 'def login_user(request): if request.method=='POST':

  • 问题内容: 我有一个网站,有一个用户系统。我想将wordpress的用户系统集成到该网站的系统中,但是我仍然想使用该网站的注册/登录页面。我不希望任何人都能使用Wordpress的登录或注册表格进行登录或注册。相反,当他们尝试访问Wordpress中的登录/注册页面时,我希望这些页面将它们重定向到我自己的登录/注册页面。 有什么办法吗?我已经尝试过Google,但是我所能找到的只是在用户登录或注册

  • 如果你已有幕布,直接登录即可。如果还没有账号,可以使用手机号码注册幕布账号,也可以通过QQ、微信直接注册并登录。 注:微信登录方式需要手机上安装有微信。 账号设置与绑定 登录幕布后,点左上角的头像或者轻按屏幕从左往右滑动,选择「应用设置 - 账号设置」。在这里可以修改头像和昵称,设置密码,绑定手机号码、微信、QQ账号。 注: 绑定手机后才可以设置账号密码,手机号即为账号。 解除绑定需要在电脑上登录

  • 在首页点击注册进入注册页面,你可以使用手机号码注册幕布账号,也可以通过QQ、微信账户直接创建账号并登录。 账号设置与绑定 登录幕布后,点击右上角处用户头像,在下拉菜单中选择「账号设置」。在这里可以修改头像和昵称,设置密码,绑定手机号码、微信、QQ账号,查看账号是否为高级版以及高级版到期时间。 注: 绑定手机后才可以设置账号密码,手机号即为账号。 解绑最后一个登录方式后,账号将无法登录,请注意将文档

  • 注册 / 登录 1.注册 注册入口: 访问 http://www.aikf.com/ 点击右上角注册按钮 输入注册手机号、图形验证码、手机验证码等进行注册 其他注册入口:手机登录http:/www.aikf.com/ 爱客服官方微信公众号注册:点击立即注册 2.登录 登录入口: 访问http://www.aikf.com/ 点击登录 输入用户名及登录密码,点击登录(见下图) 2.修改密码 在登录入

  • 我创建了一个包含两种登录机制的项目: > < li> 第一个是使用简单登录页面的第一个认证机制(使用函数< code>findUser从数据库中获取用户(如果存在)) 第二种认证机制是JAAS提供的登录机制(j_security_check) 基本上,我试图实现这个目标:当用户成功进行身份验证(在第一个登录页面中)时,他应该能够跳过第二页登录(由JAAS提供),而不必在登录表单中重新输入他的用户名