我想重新使用以下代码:
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
// User is signed in
// Redirect to signed-in flow
} else {
// No user is signed in
// Redirect to login activity
}
但是作为Java和Android的初学者,我不确定以哪种方式使用此代码。我应该在单独的类中使用它,还是以静态方式使用它?如果是这样,我在以下方面是正确的:
创建名为IsUserLoggedIn.java
的单独的类:
public class IsUserLoggedIn {
public static void isUserLogged() {
if (user != null) {
// User is signed in
// Redirect to signed-in flow
} else {
// No user is signed in
// Redirect to login activity
}
}
}
在任何要检查的活动中,我将以下内容放在onResume
中:
IsUserLoggedIn isUserLoggedIn = new IsUserLoggedIn();
isUserLoggedIn.isUserLogged();
对吗?
答案 0 :(得分:0)
如果您使用的是Firebase数据库,则还可以将用户的当前状态保存在数据库中,并仅从那里获取答案。
我的意思是,对于数据库中的每个用户节点,您可以有一个名为loginStatus
的节点,您可以在用户登录或登录应用程序时将其设置为true,并在用户注销时将其设置为false。
因此,针对上述想法的一些代码将如下所示:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("users").child(FirebaseAuth.getInstance().getUid());
// put this code where you grant user the access to log in
ref.child("loginStatus").setValue(true);
// now you can retrieve the value whenever you want in your app directly without using any new class
// to set the status to false, put this code in the code where you give user the option to log-out from your app
ref.child("loginStatus").setValue(false);
此外,如果您仍然想使用另一个类,则可以将代码放在新的Java类中,然后像显示的那样使用该代码,它看起来通常是正确的。