注册后Android Firebase自动登录

时间:2019-11-19 19:04:04

标签: android firebase firebase-authentication

我正在尝试使用Firebase构建此应用,我希望当用户注册后,他们将自动登录并重定向到另一个页面,在该页面上要求他们选择感兴趣的内容,然后从那里将他们重定向到他们的新闻提要。但是我注意到的问题是,firebase仅在重新启动应用程序时才登录用户,这不是我想要的。有人可以指导我这是下面的代码

//注册活动

    uname=(EditText)findViewById(R.id.user_name);
    email=(EditText)findViewById(R.id.signupemail);
    password=(EditText)findViewById(R.id.signuppassword);

    signinbutton=(TextView) findViewById(R.id.have_an_account_button);
    signupbutton=(TextView) findViewById(R.id.signupbutton1);

    firebaseAuth=FirebaseAuth.getInstance();

    databaseReference=FirebaseDatabase.getInstance().getReference("Users");

    signupbutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            final String txt_uname=uname.getText().toString();
            final String txt_email=email.getText().toString();
            final String txt_password=password.getText().toString();

            if(txt_uname.isEmpty() ){
                Toast.makeText(RegisterActivity.this,"Name required",Toast.LENGTH_SHORT).show();


            }





            if(txt_email.isEmpty()){

                Toast.makeText(RegisterActivity.this,"Email required",Toast.LENGTH_SHORT).show();

            }

            if(txt_password.isEmpty()){
                Toast.makeText(RegisterActivity.this,"Password",Toast.LENGTH_SHORT).show();


            }



            firebaseAuth.createUserWithEmailAndPassword(txt_email,txt_password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if(task.isSuccessful()){

                       Users information=new Users(

                                txt_uname,
                                txt_email,
                               "",
                               "",
                               "",
                               "",
                               ""

                        );

                        FirebaseDatabase.getInstance().getReference("Users").child(FirebaseAuth.getInstance().getCurrentUser().getUid())
                                .setValue(information).addOnCompleteListener(new OnCompleteListener<Void>() {
                            @Override
                            public void onComplete(@NonNull Task<Void> task) {
                                Toast.makeText(RegisterActivity.this,"Registration successful",Toast.LENGTH_SHORT).show();

                                if(firebaseAuth != null){

                                    Intent inty=new Intent(RegisterActivity.this,CategoryActivity.class);
                                    startActivity(inty);
                                }
                            }
                        });

                    }else if(task.getException() instanceof FirebaseAuthUserCollisionException){

                      email.setError("Email exist");
                      email.requestFocus();

                    }
                }
            });


        }
    });

0 个答案:

没有答案