gpt4 book ai didi

android - 启动器 Activity 不工作的 FirebaseAuthStateListener

转载 作者:行者123 更新时间:2023-11-30 00:06:18 25 4
gpt4 key购买 nike

我已经设置了 firebase 电子邮件和密码登录。我的应用程序中有三个 Activity 。注册、登录和主要。在主要 Activity 中,我已将 Firebase AuthSateListener 用于检测用户是否存在,如果不存在则将用户发送到登录/注册 Activity 。

我猜问题是我的 MainActivity 是我的启动器 Activity ,即使当前没有登录用户,它也不会重定向到身份验证 Activity 。我不知道我的假设是否正确,或者我没有正确设置它。到目前为止,这是我的代码:

public class MainActivity extends BaseActivity {

private static final String TAG = MainActivity.class.getSimpleName();

private RecyclerView playersRV;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

init();

authStateListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user == null){
Log.d(TAG, "User is null");
startActivity(new Intent(MainActivity.this, LoginActivity.class));
} else {
Log.d(TAG, "User exists:\t" + user.getEmail());
return;
}
}
};

playersRV.setHasFixedSize(true);
playersRV.setLayoutManager(new LinearLayoutManager(this));

findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mAuth.signOut();
mAuth = null;
startActivity(new Intent(MainActivity.this, LoginActivity.class));
}
});

}

private void init() {
playersRV = findViewById(R.id.playersRV);
}

@Override
protected void onStart() {
super.onStart();

if (authStateListener == null){
mAuth.addAuthStateListener(authStateListener);
}

}

@Override
protected void onStop() {
super.onStop();

if (authStateListener != null){
mAuth.removeAuthStateListener(authStateListener);
authStateListener = null;
}

}


}

我的 BaseActivity 有 Firebase Auth 和 Firebase AuthStateListener 的变量声明。

谁能告诉我为什么会这样?谢谢。

最佳答案

你可以试试这个,

 //Get Firebase auth instance
FirebaseAuth auth = FirebaseAuth.getInstance();
if (auth.getCurrentUser() != null) {
// User is logged in - send it to home screen \\
} else {
//User is not logged in - send it to login screen \\
}

关于android - 启动器 Activity 不工作的 FirebaseAuthStateListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48939046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com