Android将firebase auth对象传递给另一个活动以退出

时间:2017-04-12 03:37:59

标签: android authentication firebase firebase-authentication

我在主要活动中登录用户,但我想通过按钮在另一个活动中注销用户。但是,我无法将FirebaseAuth对象传递给其他活动。

PutParcelable和PutSerializable不起作用,因为我无法控制类本身。共享首选项仅接受原始类型。我是否应该在新活动中获得新实例并在新活动中注销用户?即使我得到一个新实例,用户的状态也会被保留吗?

这里是代码

mAuth = FirebaseAuth.getInstance();
        mAuthListener = new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                FirebaseUser user = firebaseAuth.getCurrentUser();
                if (user != null) {
                    // User is signed in
                    Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid());
                    Toast.makeText(getApplicationContext(), "You are logged in!!!",
                            Toast.LENGTH_SHORT).show();
                    Intent intent = new Intent(MainActivity.this, CameraActivity.class);

                    startActivity(intent);
                } else {
                    // User is signed out
                    Log.d(TAG, "onAuthStateChanged:signed_out");
                }

            }
        };

1 个答案:

答案 0 :(得分:17)

FirebaseAuth是一个单例类,您可以从应用程序的任何位置获取firebase auth的实例。

你只需要添加

 mAuth=FirebaseAuth.getInstance();
  // Firebase sign out
  mAuth.signOut();

或简单的方式

FirebaseAuth.getInstance().signOut();