Java 在firebase身份验证后启动新活动

Java 在firebase身份验证后启动新活动,java,android,firebase-authentication,start-activity,Java,Android,Firebase Authentication,Start Activity,这是我的代码。。。。。 在此代码中使用意图启动新活动的位置。。。 注册用户电子邮件和密码后,新活动应打开。。。。我自己尝试过,但是,它没有注册就开始了新的活动。 我希望用户在注册后转到secondactivity。 `//定义视图对象 私人编辑文本编辑电子邮件; 私人编辑文本编辑密码; 私人按钮启动; 私有进程对话 //defining firebaseauth object private FirebaseAuth firebaseAuth; @Override protected void

这是我的代码。。。。。 在此代码中使用意图启动新活动的位置。。。 注册用户电子邮件和密码后,新活动应打开。。。。我自己尝试过,但是,它没有注册就开始了新的活动。 我希望用户在注册后转到secondactivity。 `//定义视图对象 私人编辑文本编辑电子邮件; 私人编辑文本编辑密码; 私人按钮启动; 私有进程对话

//defining firebaseauth object
private FirebaseAuth firebaseAuth;

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

    //initializing firebase auth object
    firebaseAuth = FirebaseAuth.getInstance();

    //initializing views
    editTextEmail = (EditText) findViewById(R.id.editText3);
    editTextPassword = (EditText) findViewById(R.id.editText4);

    buttonSignup = (Button) findViewById(R.id.buttonSignup);

    progressDialog = new ProgressDialog(this);

    //attaching listener to button
    buttonSignup.setOnClickListener(this);
}

private void registerUser(){

    //getting email and password from edit texts
    String email = editTextEmail.getText().toString().trim();
    String password  = editTextPassword.getText().toString().trim();

    //checking if email and passwords are empty
    if(TextUtils.isEmpty(email)){
        Toast.makeText(this,"Please enter email",Toast.LENGTH_LONG).show();
        return;
    }

    if(TextUtils.isEmpty(password)){
        Toast.makeText(this,"Please enter password",Toast.LENGTH_LONG).show();
        return;
    }

    //if the email and password are not empty
    //displaying a progress dialog

    progressDialog.setMessage("Registering Please Wait...");
    progressDialog.show();

    //creating a new user
    firebaseAuth.createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    //checking if success
                    if(task.isSuccessful()){
                        //display some message here
                        Toast.makeText(LoginActivity.this,"Successfully registered",Toast.LENGTH_LONG).show();
                    }else{
                        //display some message here
                        Toast.makeText(LoginActivity.this,"Registration Error",Toast.LENGTH_LONG).show();
                    }
                    progressDialog.dismiss();
                }
            });

   startActivity(new Intent(this,SecondActivity.class));

}

  @Override 

    public void onClick(View view) {

    //calling register method on click
    registerUser();
}
 }`
//定义firebaseauth对象
私有FirebaseAuth FirebaseAuth;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.login_活动);
//初始化firebase身份验证对象
firebaseAuth=firebaseAuth.getInstance();
//初始化视图
editTextEmail=(EditText)findViewById(R.id.editText3);
editTextPassword=(EditText)findViewById(R.id.editText4);
buttonSignup=(Button)findViewById(R.id.buttonSignup);
progressDialog=新建progressDialog(此);
//将侦听器附加到按钮
buttonSignup.setOnClickListener(这个);
}
私有无效注册器(){
//从编辑文本获取电子邮件和密码
字符串email=editTextEmail.getText().toString().trim();
字符串密码=editTextPassword.getText().toString().trim();
//检查电子邮件和密码是否为空
如果(TextUtils.isEmpty(电子邮件)){
Toast.makeText(这是“请输入电子邮件”,Toast.LENGTH_LONG.show();
返回;
}
if(TextUtils.isEmpty(密码)){
Toast.makeText(这是“请输入密码”,Toast.LENGTH_LONG.show();
返回;
}
//如果电子邮件和密码不是空的
//显示进度对话框
progressDialog.setMessage(“正在注册,请稍候…”);
progressDialog.show();
//创建新用户
firebaseAuth.createUserWithEmailAndPassword(电子邮件,密码)
.addOnCompleteListener(这是新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
//检查是否成功
if(task.issusccessful()){
//在这里显示一些消息
Toast.makeText(LoginActivity.this,“成功注册”,Toast.LENGTH_LONG.show();
}否则{
//在这里显示一些消息
Toast.makeText(LoginActivity.this,“注册错误”,Toast.LENGTH_LONG.show();
}
progressDialog.disclose();
}
});
startActivity(新意图(本,SecondActivity.class));
}
@凌驾
公共void onClick(视图){
//单击调用register方法
registerUser();
}
}`
试试这个
  • 在您的
    任务中。isSuccessful
    传递
    意图

firebaseAuth.createUserWithEmailAndPassword(电子邮件,密码)
.addOnCompleteListener(这是新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
startActivity(新意图(当前的_活动。这个,下一个_活动。类));
}否则{
}
}
});

很高兴能帮你做这件事
  • 在您的
    任务中。isSuccessful
    传递
    意图

firebaseAuth.createUserWithEmailAndPassword(电子邮件,密码)
.addOnCompleteListener(这是新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
startActivity(新意图(当前的_活动。这个,下一个_活动。类));
}否则{
}
}
});


很乐意帮助您startActivity必须在task.issucessful()方法中调用。当前,您甚至在获得成功响应之前就开始调用startActivity。

必须在task.isSuccessful()方法内调用startActivity。当前,您甚至在收到成功响应之前就调用了startActivity。

在task.isSuccessful()if block中。您应该将startActivity(new Intent())置于“if(task.isSuccessfull())”条件中。现在,无论注册过程成功与否,您都将开始新的活动。TQM。。。如果阻塞,则它在task.isSuccessful()内部工作。您应该将startActivity(new Intent())放在“if(task.isSuccessfull())”条件内。现在,无论注册过程成功与否,您都将开始新的活动。TQM。。。它起作用了
 firebaseAuth.createUserWithEmailAndPassword(email, password)
        .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {

                if(task.isSuccessful()){
                   startActivity(new Intent(current_activity.this,next_activity.class));
                }else{
                }

            }
        });