Android Studio Facebook登录成功后,将保持';返回登录活动

Android Studio Facebook登录成功后,将保持';返回登录活动,android,facebook,android-studio,authentication,Android,Facebook,Android Studio,Authentication,我有一个登录活动,当用户成功从facebook登录时,它将转到mainactivity,但它会一直返回到登录活动,请参阅帮助!! 这是我的登录活动代码,我不知道出了什么问题 我遵循这个视频教程 我已经尝试了很多方法来解决这个问题,但都不起作用 我希望有人能帮助我:) @覆盖 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity\u登录

我有一个登录活动,当用户成功从facebook登录时,它将转到mainactivity,但它会一直返回到登录活动,请参阅帮助!! 这是我的登录活动代码,我不知道出了什么问题 我遵循这个视频教程

我已经尝试了很多方法来解决这个问题,但都不起作用

我希望有人能帮助我:)

@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u登录);
tvRegister=findViewById(R.id.btn_daftar);
email_et=findviewbyd(R.id.emailET);
password_et=findviewbyd(R.id.passwordET);
callbackManager=callbackManager.Factory.create();
mAuth=FirebaseAuth.getInstance();
btn_masuk=findviewbyd(R.id.btn_masuk);
fbLogin=(按钮)findViewById(R.id.facebookLogin);
fbLogin.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
LoginManager.getInstance().logInWithReadPermissions(Login.this、Arrays.asList(“电子邮件”、“公共_配置文件”);
LoginManager.getInstance().registerCallback(callbackManager,new FacebookCallback()){
@凌驾
成功时公共无效(LoginResult LoginResult){
Log.d(标签“facebook:onSucces:+loginResult”);
handleFacebookAccessToken(loginResult.getAccessToken());
}
@凌驾
公开作废{
Log.d(标签“facebook:onCancel”);
}
@凌驾
public void onError(facebook异常错误){
Log.d(标签“facebook:onError”);
}
});
}
});
btn_google_login=findviewbyd(R.id.google_login);
btn_google_login.setOnClickListener(newview.OnClickListener()){
@凌驾
公共void onClick(视图v){
开关(v.getId()){
案例R.id.google\u登录:
签名();
打破
// ...
}
}
});
谷歌签名gso=新谷歌签名
.Builder()
.requestIdToken(getString(R.string.default\u web\u client\u id))
.requestEmail()
.build();
mGoogleSignInClient=GoogleSignIn.getClient(this,gso);
btn_masuk.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
email_txt=email_et.getText().toString();
password_txt=password_et.getText().toString();
if(TextUtils.isEmpty(email_txt)){
Toast.makeText(getApplicationContext(),“Masukan Email!!!”,Toast.LENGTH\u SHORT.show();
返回;
}
if(TextUtils.isEmpty(密码\u txt)){
Toast.makeText(getApplicationContext(),“Masukan密码!!!”,Toast.LENGTH\u SHORT.show();
返回;
}
mAuth.使用email和password登录(email\u txt,password\u txt)
.addOnCompleteListener(Login.this,新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
FirebaseUser=mAuth.getCurrentUser();
Intent myIntent=newintent(Login.this,IntroActivity.class);
Login.this.startActivity(myIntent);
完成();
}否则{
Toast.makeText(Login.this,“Proses Login gagal:+task.getException(),
Toast.LENGTH_LONG).show();
}
}
});
}
});
FirebaseAuth FirebaseAuth=FirebaseAuth.getInstance();
FirebaseUser FirebaseUser=firebaseAuth.getCurrentUser();
if(firebaseUser!=null){
startActivity(新意图(Login.this、MainActivity.class));
}
tvRegister.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
startActivity(新意图(Login.this、Register.class));
完成();
}
});
}
私有void firebaseAuthWithGoogle(谷歌登录帐户){
Log.d(“TAG”,“firebaseAuthWithGoogle:+account.getId());
AuthCredential credential=GoogleAuthProvider
.getCredential(account.getIdToken(),null);
mAuth.SIGNWITH凭证(凭证)
.addOnCompleteListener(这是新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
日志d(“标记”、“登录Sukses”);
FirebaseUser=mAuth.getCurrentUser();
}否则{
日志d(“标签”、“登录Gagagl”);
Toast.makeText(Login.this,“SignIn Gagal!”,Toast.LENGTH_SHORT.show();
}
}
});
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
callbackManager.onActivityResult(请求代码、结果代码、数据);
if(requestCode==谷歌符号){
任务=谷歌登录
.GetSignedAccountFromIntent(数据);
试一试{
GoogleSignInAccount account=task.getResult(ApiException.class);
Intent myIntent=newintent(Login.this,IntroActivity.class);
Login.this.startActivity(myIntent);
如果(account!=null)firebaseAuthWithGoogle(account);
}捕获(APIE){
e、 printStackTrace(
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    tvRegister = findViewById(R.id.btn_daftar);
    email_et = findViewById(R.id.emailET);
    password_et = findViewById(R.id.passwordET);
    callbackManager = CallbackManager.Factory.create();
    mAuth = FirebaseAuth.getInstance();
    btn_masuk = findViewById(R.id.btn_masuk);
    fbLogin = (Button) findViewById(R.id.facebookLogin);
    fbLogin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            LoginManager.getInstance().logInWithReadPermissions(Login.this, Arrays.asList("email", "public_profile"));
            LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    Log.d(TAG,"facebook:onSucces:" + loginResult);
                    handleFacebookAccessToken(loginResult.getAccessToken());
                }

                @Override
                public void onCancel() {
                    Log.d(TAG,"facebook:onCancel");
                }

                @Override
                public void onError(FacebookException error) {
                    Log.d(TAG,"facebook:onError");
                }
            });
        }
    });


    btn_google_login = findViewById(R.id.google_login);
    btn_google_login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.google_login:
                    signIn();
                    break;
                // ...
            }
        }
    });
    GoogleSignInOptions gso = new GoogleSignInOptions
            .Builder()
            .requestIdToken(getString(R.string.default_web_client_id))
            .requestEmail()
            .build();
    mGoogleSignInClient = GoogleSignIn.getClient(this, gso);


    btn_masuk.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            email_txt = email_et.getText().toString();
            password_txt = password_et.getText().toString();
            if (TextUtils.isEmpty(email_txt)) {
                Toast.makeText(getApplicationContext(), "Masukan Email !!!", Toast.LENGTH_SHORT).show();
                return;
            }
            if (TextUtils.isEmpty(password_txt)) {
                Toast.makeText(getApplicationContext(), "Masukan Password !!!", Toast.LENGTH_SHORT).show();
                return;
            }
            mAuth.signInWithEmailAndPassword(email_txt, password_txt)
                    .addOnCompleteListener(Login.this, new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            if (task.isSuccessful()) {
                                FirebaseUser user = mAuth.getCurrentUser();
                                Intent myIntent = new Intent(Login.this, IntroActivity.class);
                                Login.this.startActivity(myIntent);
                                finish();
                            } else {
                                Toast.makeText(Login.this, "Proses Login gagal : " + task.getException(),
                                        Toast.LENGTH_LONG).show();
                            }
                        }
                    });
        }
    });
    FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
    FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();

    if (firebaseUser != null) {
        startActivity(new Intent(Login.this, MainActivity.class));
    }

    tvRegister.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(Login.this, Register.class));
            finish();
        }
    });
}

private void firebaseAuthWithGoogle(GoogleSignInAccount account) {
    Log.d("TAG", "firebaseAuthWithGoogle: " + account.getId());

    AuthCredential credential = GoogleAuthProvider
            .getCredential(account.getIdToken(), null);
    mAuth.signInWithCredential(credential)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        Log.d("TAG", "Sign In Sukses");

                        FirebaseUser user = mAuth.getCurrentUser();
                    } else {
                        Log.d("TAG", "Sign In Gagagl");
                        Toast.makeText(Login.this, "SignIn Gagal!", Toast.LENGTH_SHORT).show();

                    }
                }

            });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
    if (requestCode == GOOGLE_SIGN) {
        Task<GoogleSignInAccount> task = GoogleSignIn
                .getSignedInAccountFromIntent(data);
        try {
            GoogleSignInAccount account = task.getResult(ApiException.class);
            Intent myIntent = new Intent(Login.this, IntroActivity.class);
            Login.this.startActivity(myIntent);
            if (account != null) firebaseAuthWithGoogle(account);

        } catch (ApiException e) {
            e.printStackTrace();
        }
    }
}

private void signIn() {
    Intent signInIntent = mGoogleSignInClient.getSignInIntent();
    startActivityForResult(signInIntent, GOOGLE_SIGN);
}




private void handleFacebookAccessToken(AccessToken token) {
    Log.d(TAG, "handleFacebookAccessToken:" + token);

    AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
    mAuth.signInWithCredential(credential)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        // Sign in success, update UI with the signed-in user's information
                        Log.d(TAG, "signInWithCredential:success");
                        FirebaseUser user = mAuth.getCurrentUser();
                        fbLogin.setEnabled(true);
                        updateUI();
                    } else {
                        // If sign in fails, display a message to the user.
                        Log.w(TAG, "signInWithCredential:failure", task.getException());
                        Toast.makeText(Login.this, "Authentication failed.",
                                Toast.LENGTH_SHORT).show();
                        fbLogin.setEnabled(false);
                        updateUI();
                    }

                    // ...
                }
            });
}

@Override
protected void onStart() {
    super.onStart();
    FirebaseUser currentUser = mAuth.getCurrentUser();

    if(currentUser != null){
        updateUI();
    }
}
 private void updateUI(){
    Toast.makeText(Login.this,"Berhasil Login!", Toast.LENGTH_LONG).show();
    Intent intenkuy = new Intent(Login.this,MainActivity.class);
    startActivity(intenkuy);
    finish();
 }