Когда я пытаюсь сохранить сведения о пользователе в классе, прежде чем войти в него с помощью Firebase, он дает мне ошибку - PullRequest
0 голосов
/ 05 мая 2020

Я работаю над проектом, в котором мне нужно сохранить сведения о пользователе, прежде чем регистрировать его / ее в ее учетной записи, чтобы мне не приходилось снова получать его / ее данные и я мог ссылаться на этот класс всякий раз, когда я нужны их подробности. Отображается всплывающее сообщение «Произошла ошибка! Пожалуйста, войдите снова». что означает, что возвращается значение null или false. Также после того, как я закрою приложение и снова открою его, он перейдет к следующему Activity.

Screenshot of database

signintouserbycredential method

 private void signInTheUserByCredential(PhoneAuthCredential credential)
    {
        firebaseAuth=FirebaseAuth.getInstance();

        firebaseAuth.signInWithCredential(credential).addOnCompleteListener(Login_student.this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if(task.isSuccessful())
                {
                    String curr_user_str=task.getResult().getUser().getUid();
                    //Store user data in HelperClass for future use
                    if((curr_user_str.isEmpty())&&(storeUserInfoInHelperClass(curr_user_str)))
                    {
                        Toast.makeText(Login_student.this, "Login Successful", Toast.LENGTH_SHORT).show();
                        startActivity(new Intent(Login_student.this, Home_page.class));
                        if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
                            finishAffinity();
                    }
                    else
                    {
                        Toast.makeText(Login_student.this,"Error occurred ! Please login again.",Toast.LENGTH_SHORT).show();
                    }

                }
                else
                {
                    Toast.makeText(Login_student.this, task.getException().getMessage(), Toast.LENGTH_SHORT).show();
                }

            }
        });
    }

storeInfoinHelperClass method

int flag=0;// to check if data is stored and if it is stored return true
    static HelperClass data;
    public boolean storeUserInfoInHelperClass(String curr_user_str) {
            reff = FirebaseDatabase.getInstance().getReference("userdetails");
            reff.child(curr_user_str).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                    if (data != null) {
                        data = dataSnapshot.getValue(HelperClass.class);
                        flag=1;
                    } else {
                        flag=0;
                    }

                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                }
            });
            if(flag==1)
                return true;
            else
                return false;

    }
...