我正在使用Firebase验证我的用户。我创建了一些活动,并具有登录屏幕,如果用户尚未登录,我想显示该屏幕。我将清单中的大多数活动定义为默认活动,并将登录屏幕活动定义为主要活动。我做得对吗?应该在清单中将哪个屏幕定义为主屏幕?登录屏幕还是包含大多数信息的屏幕(右侧)?
答案 0 :(得分:0)
将主屏幕定义为默认屏幕。在请求可能导致由于用户未登录而导致失败的数据的用户之前,请确保您的查询是否已登录。这种情况的原因是在大多数情况下,用户都会登录,而您不希望在您的应用每次启动时都要运行两个活动。
答案 1 :(得分:0)
我认为您应该使用启动屏幕作为主屏幕,通常用于在应用程序完全安装之前显示某种进度
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
// User is signed in
// Start home activity
startActivity(new Intent(SplashActivity.this, HomeActivity.class));
} else {
// No user is signed in
// start login activity
startActivity(new Intent(SplashActivity.this, loginActivity.class));
}
// close splash activity
finish();
}
}
并了解用户是否已经按照官方documentation中的说明登录:
推荐的获取当前用户的方法是调用getCurrentUser方法。如果没有用户登录,则getCurrentUser返回null
FirebaseAuth.getInstance().getCurrentUser()
如果用户未登录,则应返回null。