无法使用 Firebase 在 Android 上正确退出 Facebook

尤努斯司库

我尝试登录 Facebook,它工作正常。但是当我退出时,Facebook 的“退出”按钮仍然显示在我的登录活动中,当我点击它时,我可以退出。但我不想那样做。

但真正的问题是,我如何正确退出 Facebook?我同时使用 Firebase 身份验证和 Facebook 身份验证(支持 Firebase)

Giris.java(登录)

public class Giris extends AppCompatActivity implements View.OnClickListener {

private FancyButton buttonSignIn;
private EditText editTextEmail;
private EditText editTextPassword;
private TextView textViewSignup, textViewSifreUnuttum, girismesaji;
public boolean cancel = false;
public boolean isFirstStart;
private FirebaseAuth firebaseAuth;
private FirebaseAuth.AuthStateListener mAuthListener;
private Dialog progressDialog;
private CallbackManager mCallbackManager;
private static final String TAG = "FacebookLogin";


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_giris);
    FacebookSdk.sdkInitialize(getApplicationContext());
    firebaseAuth = FirebaseAuth.getInstance();

    mAuthListener = new FirebaseAuth.AuthStateListener() {
        @Override
        public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
            FirebaseUser user = firebaseAuth.getCurrentUser();
            if (user != null) {
                // Kullanıcı oturumu açtı
                finish();
                startActivity(new Intent(getApplicationContext(), MainActivity.class));
                Log.d("onCreate", "onAuthStateChanged:signed_in:" + user.getUid());
            } else {
                // Kullanıcı oturumu kapattı.
                Log.d("onCreate", "onAuthStateChanged:signed_out");
            }

        }
    };
    firebaseAuth.addAuthStateListener(mAuthListener);
    mCallbackManager = CallbackManager.Factory.create();
    LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);
    loginButton.setReadPermissions("email", "public_profile");
    loginButton.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            Log.d(TAG, "facebook:onSuccess:" + loginResult);
            handleFacebookAccessToken(loginResult.getAccessToken());
        }

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

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

        }
    });
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent 
data)
{
    super.onActivityResult(requestCode, resultCode, data);
    mCallbackManager.onActivityResult(requestCode, resultCode, data);
}

private void handleFacebookAccessToken(AccessToken token) {
    Log.d(TAG, "handleFacebookAccessToken:" + token);
        AuthCredential credential = 
        FacebookAuthProvider.getCredential(token.getToken());
        progressDialog.show();
        firebaseAuth.signInWithCredential(credential)
                .addOnCompleteListener(this, new 
                  OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task)
                    {
                        Log.d(TAG, "signInWithCredential:onComplete:" + 
                        task.isSuccessful());

                        if(task.isSuccessful())
                        {
                            finish();
                            Intent fGiris=new Intent(Giris.this, 
                            MainActivity.class);
                            fGiris.putExtra("giris","facebook");
                            startActivity(fGiris);

                        }
                        else
                        {
                            Log.w(TAG, "signInWithCredential", task.getException());
                            Toast.makeText(Giris.this, "Facebook ile bağlantı başarız oldu.",
                                    Toast.LENGTH_SHORT).show();

                        }
                        progressDialog.dismiss();
                    }

                });
    }
    else
    {
        Intent hata = new Intent(Giris.this, InternetCon.class);
        startActivity(hata);
    }

MainActivity.java(注销)

public class MainActivity extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener{

private Fragment fragment;
private FragmentManager fragmentManager;
public TextView tarih;
final String PREFS_NAME = "MyPrefsFile";
final String SHAREDPREF_DATE = "SharedPrefDate";
private FirebaseAuth firebaseAuth;
private FirebaseUser user;
private TextView textViewUserEmail;
public CircleImageView userImage;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    firebaseAuth = FirebaseAuth.getInstance();
    if(firebaseAuth.getCurrentUser()==null)
    {
        finish();
        startActivity(new Intent(this,Giris.class));

    }



    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    final ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.setDrawerListener(toggle);
    toggle.syncState();
    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
    View headerView = navigationView.getHeaderView(0); //giriste gelen maili Navigation header'a at
    textViewUserEmail= (TextView) headerView.findViewById(R.id.textKullaniciBilgisi);
    textViewUserEmail.setText(firebaseAuth.getCurrentUser().getEmail());
    userImage= (CircleImageView) findViewById(R.id.kullaniciNavHesapResmi);
    fragmentManager = getSupportFragmentManager();
    fragment = new AraclarimFragment();
    final FragmentTransaction transaction = fragmentManager.beginTransaction();
    transaction.add(R.id.main_container, fragment).commit();


@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
    // Navigation itemlerinin click olaylarını burada yapıyoruz.
    int id = item.getItemId();

    if (id == R.id.nav_cikis)
    {

        Intent gelen=getIntent();
        String loginType=gelen.getStringExtra("giris");
        if(loginType=="facebook")
        {
            finish();
            firebaseAuth.signOut();
            LoginManager.getInstance().logOut();
            startActivity(new Intent(MainActivity.this, Giris.class));
        }
        else
        {
            finish();
            FirebaseAuth.getInstance().signOut();
            startActivity(new Intent(MainActivity.this, Giris.class));
        }
    }

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;

}
乌塞玛·阿鲁阿
if (id == R.id.nav_cikis)
    {

        Intent gelen=getIntent();
        String loginType=gelen.getStringExtra("giris");
        if(loginType=="facebook")
        {
            FirebaseAuth.getInstance().signOut();
            LoginManager.getInstance().logOut();
            startActivity(new Intent(MainActivity.this, Giris.class));
            finish();
        }
        else{
            FirebaseAuth.getInstance().signOut();
            LoginManager.getInstance().logOut();
            startActivity(new Intent(MainActivity.this, Giris.class));
            finish();// must be the last line
        }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Firebase在Android上正确注销Facebook?

Android:使用 Firebase 的 Facebook 身份验证无法启动

无法使用Android版Facebook SDK在Facebook上发布

无法使用Android版Facebook SDK在Facebook上发布

无法使用Firebase Facebook登录

在Android上使用Facebook登录

尝试使用 Facebook 在 Firebase 上注册(从网页)

使用 Firebase 和 Android 更改 Facebook 帐户/完全注销

使用Facebook时Firebase无法登录,在Google上可以正常运行

使用Android在Facebook Wall上发布

从我的应用共享时,Android上的Facebook立即退出

Unity无法使用Facebook SDK构建Android

Android Firebase-无法从Firebase快照接收正确的JSON

android-Webview无法正确显示Facebook URL的内容

无法在Firebase Android上注册用户

无法使用带有Firebase的Flutter从Facebook注销

Flutter Firebase(firebase_core)无法在Android上构建

被卡住,使用firebase与facebook登录

在Android应用程序上的Firebase上进行Facebook / Google注册

Firebase getDownloadURL无法正常使用Android

无法使用Firebase进行googleSignIn-Android

使用相机和Firebase ML套件的Android设备上的文本识别不正确

Android:成功登录后,如何使用Firebase Auth 9.6.1从Facebook获得令牌?

当我使用Firebase Unity插件在android中实现FaceBook Auth函数时,它崩溃了

无法下载Android Facebook SDK

无法在Facebook上分享

密钥哈希在Android上使用Facebook API的目的是什么?

无法使用Android SDK 3连接到Facebook

使用Android SDK的Facebook登录无法正常工作