Я только начинаю работать с аутентификацией по электронной почте и паролю FirebaseUI.
Мое приложение очень простое, пока оно состоит из 1 действия, которое содержит 3 фрагмента с использованием TabLayout и выглядит так:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
TabsAdapter adapter = new TabsAdapter(this, getSupportFragmentManager());
viewPager.setAdapter(adapter);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
}
}
В помощнике Firebase он показывает, что мне нужно проверить, вошел ли пользователь в систему onStart:
@Override
public void onStart() {
super.onStart();
// Check if user is signed in (non-null) and update UI accordingly.
FirebaseUser currentUser = mAuth.getCurrentUser();
updateUI(currentUser);
}
Затем помощник показывает, как зарегистрироваться и войти в систему.пользователь, но он не показывает, в какую часть действия он должен идти: onCreate
?onStart
?
* Это код регистрации:
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "createUserWithEmail:success");
FirebaseUser user = mAuth.getCurrentUser();
updateUI(user);
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "createUserWithEmail:failure", task.getException());
Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
updateUI(null);
}
// ...
}
});
* Это код входа в систему
mAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "signInWithEmail:success");
FirebaseUser user = mAuth.getCurrentUser();
updateUI(user);
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "signInWithEmail:failure", task.getException());
Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
updateUI(null);
}
// ...
}
});
Я запутался, предполагая, что яв настоящее время есть рабочее приложение с кодом, приведенным выше, каков рабочий процесс сейчас?Нужно ли мне делать этот код регистрации / входа в Mainactivity, а затем вместо псевдокода updateUI(null);
, предоставляемого помощником Firebase, я должен выполнить новое «основное действие» только с кодом авторизации firebase, а затемиспользовать намерения, чтобы отправить пользователя к тому, что в настоящее время является основным действием, которое будет переименовано во что-то вроде «SignedInActivity», или все будет выполнено в том же текущем действии?
** Редактировать: Чтобы уточнить, что я имею в виду: яВ настоящее время есть MainActivity.Нужно ли:
1) изменить текущую MainActivity на SignedInActivity, а затем заменить текущую MainActivity на активность Firebase, а затем при успешном входе отправить намерение в SignedInActivity
или
2) Изменить текущую MainActivity с помощью кода Firebase, чтобы у меня все еще была текущая MainActivity с дополнительным кодом Firebase?
Я тоже в замешательстве, так что, надеюсь, мой пост понятен