我的要求是區分第一次和後來的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";
}
我無法弄清楚問題所在。任何幫助表示讚賞