Да, поскольку в сообщении об ошибке указано «java .lang.NullPointerException: попытка вызвать виртуальный метод« ... FirebaseAuth.zza (com.google.firebase.auth.FirebaseUser, boolean) »для ссылки на пустой объект ... at SignInWithPhoneAuthCreds ”
Это означает, что ваш signInTask имеет значение null, а пользовательский объект отправляется как null. И это потому, что «PhoneAuthCredential credential = PhoneAuthProvider.GetCredential (_phoneAuthCallbacks.VerificationId, otp);» хранит нулевое значение внутри учетных данных.
Добавьте пустую проверку учетных данных после этой строки, и вы не увидите ошибку.
Редактирование на основе ответа @ Pratik:
Попробуйте добавить это к вашему try-catch и посмотрите, какое сообщение об ошибке вызывается для лучшего понимания.
catch (NSErrorException ex)
{
Console.WriteLine(ex.Message);
AuthErrorCode errorCode;
if (IntPtr.Size == 8) // 64 bits devices
errorCode = (AuthErrorCode)((long)ex.Error.Code);
else // 32 bits devices
errorCode = (AuthErrorCode)((int)ex.Error.Code);
switch (errorCode)
{
case AuthErrorCode.UserNotFound:
return "ERROR_USER_NOT_FOUND";
case AuthErrorCode.InvalidEmail:
return "ERROR_INVALID_EMAIL";
case AuthErrorCode.UserDisabled:
return "ERROR_USER_DISABLED";
case AuthErrorCode.WrongPassword:
return "ERROR_WRONG_PASSWORD";
default:
return "ERROR_EMAIL_OR_PASSWORD_MISSING";
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return ex.Message;
}