Пропустить экран входа в систему, если пользователь уже вошел в систему

Я использую firebase для аутентификации моего пользователя. Я создал некоторые действия и имею экран входа в систему, который я хочу показать, если пользователь еще не вошел в систему. Я определил большинство действий в манифесте по умолчанию, а действия на экране входа в систему — как основные. Правильно ли я делаю? Какой из экранов должен быть определен в манифесте как основной? Экран входа или экран с большей частью информации (правый главный)?

определил экран входа в систему по умолчанию и проверьте, вошел ли пользователь уже в общие настройки, если это так, то перейдите к основному действию.

YQadoome 31.05.2019 00:24
0
1
720
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Определите ваш главный экран как экран по умолчанию. Убедитесь, что ваш запрос вошел в систему, прежде чем запрашивать данные, что может привести к сбою из-за того, что пользователь не вошел в систему. чтобы запускать два действия каждый раз, когда ваше приложение запускается.

Ответ принят как подходящий

я думаю, что вы должны использовать экран-заставку в качестве основного, он обычно используется для отображения какого-либо прогресса до полной настройки приложения.

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();
 }
}

и узнать, вошел ли пользователь уже в систему, как указано в официальном документация:

The recommended way to get the current user is by calling the getCurrentUser method. If no user is signed in, getCurrentUser returns null

FirebaseAuth.getInstance().getCurrentUser()

Он должен возвращать значение null, если пользователь не вошел в систему.

Другие вопросы по теме