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