проводить проверку подлинности с помощью firebase из класса обслуживания? - PullRequest
1 голос
/ 03 октября 2019

У меня есть действие для новых пользователей, которое состоит из 3-х текстовых правок: один для ввода адреса электронной почты, установки пароля и ввода номеров квитанций. Перед регистрацией с использованием FireBase пользователи должны оплачивать услуги через банки и использовать номер квитанции для подтверждения оплаты в приложении, когда пользователь нажимает кнопку регистрации, введенный номер квитанции отправляется на частный сервер, который отправляет обратноЯ БЫ. Это все работает, но я пытаюсь отправить проанализированный идентификационный номер из ответа json вместе с введенным пользователем адресом электронной почты и паролем в класс обслуживания, где метод регистрации начинается через 30 секунд. В методе регистрации идентификатор отправляется на сервер для проверки, и когда с сервера получен действительный ответ json, он создает нового пользователя firebase, используя строковый пароль и адрес электронной почты, переданные из основного действия. Я, однако, получаю ошибку нулевого указателя в той же строке, где адрес электронной почты и пароль помещаются в firebase, создают новый метод пользователя. Ниже показано, как я получаю адрес электронной почты и пароль от основного действия

public Signupservice() {
 String a;
 String b;
}
...... 
 @Override
public int onStartCommand(Intent intent, int flags , int startId){

     a=intent.getStringExtra(FILENAMED);
     b=intent.getStringExtra(FILEEXD);
 ...... 
  firebaseAuth.createUserWithEmailAndPassword(a, b).addOnCompleteListener( new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (!task.isSuccessful()) {
                        Toast.makeText(getApplicationContext(), "signupunsuccessful: " + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(getApplicationContext(),"suucessfull",Toast.LENGTH_SHORT).show();

Однако я получаю следующую ошибку от logcat в связи с первой строкой кода из метода создания пользователя с электронной почтой и паролем

2019-10-02 20:40:15.539 20184-20184/com.chomba.haroldking.kupa E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.chomba.haroldking.kupa, PID: 20184
java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.android.gms.tasks.Task com.google.firebase.auth.FirebaseAuth.createUserWithEmailAndPassword(java.lang.String, java.lang.String)' on a null object reference
    at com.chomba.haroldking.kupa.Signupservice.parseData(Signupservice.java:159)

Ниже показано, как строка отправляется в класс обслуживания

 Intent startServiceIntent=new Intent(Signupuser.this,Signupservice.class);
    startServiceIntent.putExtra(FILENAMED,emailIDfed);
         startServiceIntent.putExtra(FILEEX,gce);
         startServiceIntent.putExtra(FILENAMEDD,paswdfed);

Пожалуйста, помогите

1 Ответ

1 голос
/ 03 октября 2019

firebaseAuth - ноль. Похоже, вы не присвоили его перед первым использованием. Обязательно назначьте его первым: firebseAuth = FirebaseAuth.getInstance().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...