问题描述
我是 Java 编程的初学者我正在尝试在应用程序中创建 2 路登录系统,第一个是电子邮件,第二个是电话号码,但我一直在识别用户使用电话登录的用户号码或电子邮件 在我的启动画面上,首先我检查用户是否为空或否,如果它不为空,然后第二我检查用户电子邮件是否已验证,如果用户电子邮件已验证,则用户可以转到主应用程序,但如果用户电子邮件没有经过验证,那么他应该去验证页面,他应该首先验证他的帐户,但如果用户使用他的电话号码登录,他应该去主应用程序但我的问题是,什么时候用电话号码注册,我打开它转到验证电子邮件页面的应用。
public class SplashScreen extends AppCompatActivity
{
ImageView icon;
TextView app;
RelativeLayout relativeLayout;
Animation layout;
private FirebaseAuth mAuth;
FirebaseUser firebaseUser;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash_screen);
firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
mAuth = FirebaseAuth.getInstance();
app = findViewById(R.id.splash_scren_app);
relativeLayout = findViewById(R.id.splash_srceen);
icon = findViewById(R.id.splash_srceen_icon);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
relativeLayout.setVisibility(View.VISIBLE);
relativeLayout.setAnimation(layout);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
app.setVisibility(View.VISIBLE);
icon.setVisibility(View.VISIBLE);
}
},500);
}
},1000);
if (firebaseUser!=null)
{
new Handler().postDelayed(new Runnable() {
@Override
public void run()
{
if (firebaseUser.isEmailVerified())
{
Intent intent = new Intent(SplashScreen.this,MainActivity.class);
startActivity(intent);
finish();
}
else
{
Intent intent = new Intent(SplashScreen.this,EmailVerification.class);
startActivity(intent);
finish();
}
}
},5000);
}
else
{
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(SplashScreen.this,WelcomeScreen.class);
startActivity(intent);
finish();
}
},5000);
}
}
}
解决方法
你的逻辑有问题
if (firebaseUser.isEmailVerified())
{
Intent intent = new Intent(SplashScreen.this,MainActivity.class);
startActivity(intent);
finish();
}
else
{
Intent intent = new Intent(SplashScreen.this,EmailVerification.class);
startActivity(intent);
finish();
}
改为这样做
if (firebaseUser.isEmailVerified() || firebase.getPhoneNumber() != null)
{
Intent intent = new Intent(SplashScreen.this,MainActivity.class);
startActivity(intent);
finish();
}
else
{
if(firebaseUser.isEmailVerified()){
Intent intent = new Intent(SplashScreen.this,EmailVerification.class);
startActivity(intent);
finish();
}
else if (firebase.getPhoneNumber() != null){
//go to the phone verify activity
}
}