我的要求是区分第一次和后来的Google-在我的android应用程序中登录。对于第一次用户谷歌登录,我想将用户重定向到个人资料屏幕,在那里他将填写有关他的联系信息的其他信息。在他第一次谷歌登录后,所有后来的谷歌登录,我希望用户直接导航到主屏幕,而无需再次填写个人资料详细信息。我使用Firebase作为我的后端。我遵循了几个堆栈溢出问题,并提供了下面相同的链接。首次共享首选项及后续Google登录
链接1: Correct code location to check Firebase if a user has been created already?
我能够实现一个简单的错误,我无法弄清楚,我错过了什么我的要求。第一次Google登录指向配置文件屏幕,随后的请求重定向到主屏幕。但是我尝试过,它只发生在用户关闭应用程序之前。如果用户关闭应用程序并再次打开,用户将被重定向到配置文件屏幕,这不应该发生。用户使用Google登录并注册了个人资料后,所有后续请求都应转到主屏幕。
我的错误:当用户关闭应用程序,并再次重新打开,用户被重定向到在谷歌标志分布屏幕下面是我曾尝试
SignInActivity.java
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(SignInActivity.this);
if (firebaseAuth.getCurrentUser() != null) {
if (!sharedPreferences.contains(String.valueOf(Preferences.FIRST_LAUNCH))) {
Intent contactDetailsIntent = new Intent(SignInActivity.this, ContactDetailsActivity.class);
startActivity(contactDetailsIntent);
sharedPreferences.edit().putBoolean(String.valueOf(Preferences.FIRST_LAUNCH), true).commit();
} else {
Intent loginIntent = new Intent(SignInActivity.this,MainMenuActivity.class);
startActivity(loginIntent);
finish();
}
}
这是我的喜好类。
public class Preferences {
public static final boolean FIRST_LAUNCH = false;
public static final String NAME = "fullName";
public static final String EMAIL = "email";
public static final String USERID = "userId";
public static final String USER_TYPE = "userType";
}
我无法弄清楚问题所在。任何帮助表示赞赏