В моей Деятельности есть 3 фрагмента, и я реализую их интерфейсы следующим образом:
public class MainActivity extends AppCompatActivity implements FirstFragment.OnFragmentInteractionListener,
RegisterPageFragment.OnFragmentInteractionListener,
LoginPageFragment.OnFragmentInteractionListener {
когда я пытаюсь создать пользователя из фрагмента RegisterPageFragment, используя этот код:
firebaseHelper.createNewUser(getActivity(), email, password, new Callback() {
@Override
public void callback() {
accountCreated();
}
});
//This code is running in a fragment
// (RegisterPageFragment)
Я получаю исключение java.lang.NullPointerException. Потому что getActivity()
возвращает null
. Но дело в том, что у меня есть ToastMessage перед этим блоком кода:
ShortCut.displayMessageToast(getActivity(), "You should fill empty fields!");
Почему я не получаю ошибки от ToastMessage и firebaseHelper? Потому что они имеют одинаковый контекст ..
Эта ситуация заставляет меня думать, что проблема в mAuth.createUserWithEmailAndPassword (). Вот мой метод firebaseHelper.createNewUser ():
public void createNewUser(final Context context, String email, String password , final Callback callback){
firebaseAuth = this.getFirebaseAuth();
firebaseAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener((Activity) context, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful()) {
ShortCut.displayMessageToast(context, "invalid info");
}else {
ShortCut.displayMessageToast(context, "Account created");
callback.callback();
}
}
});
}
Вы знаете, где моя вина? Или как я могу запустить этот код без ошибок?