我在主要活动中登录用户,但我想通过按钮在另一个活动中注销用户。但是,我无法将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");
}
}
};
答案 0 :(得分:17)
FirebaseAuth是一个单例类,您可以从应用程序的任何位置获取firebase auth的实例。
你只需要添加
mAuth=FirebaseAuth.getInstance();
// Firebase sign out
mAuth.signOut();
或简单的方式
FirebaseAuth.getInstance().signOut();