エミュレータとデバイスでサインアップしようとすると、このエラーが発生します。認証failed.com.google.firebase.FirebaseException:内部エラーが発生しました。 [OPERATION_NOT_ALLOWED]
認証failed.com.google.firebase.FirebaseException:内部エラーが発生しました。 [OPERATION_NOT_ALLOWED]
別の質問で示唆されているようにコンソールで認証プロバイダの下でメールを有効にしましたが、まだ問題があります。何か案は? 私は9.0.0よりも高く設定プレイ・サービスの依存関係との両方のエミュレータを持っていると私のテストデバイスは、この要件に
を満たすここに私のSignupActivity
コード
public class SignupActivity extends AppCompatActivity {
private static final String TAG = "SignupActivity" ;
private Button btnSignUp,btnLinkToLogIn;
private ProgressBar progressBar;
private FirebaseAuth auth;
private EditText signupInputEmail, signupInputPassword;
private TextInputLayout signupInputLayoutEmail, signupInputLayoutPassword;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup);
auth = FirebaseAuth.getInstance();
signupInputLayoutEmail = (TextInputLayout) findViewById(R.id.signup_input_layout_email);
signupInputLayoutPassword = (TextInputLayout) findViewById(R.id.signup_input_layout_password);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
signupInputEmail = (EditText) findViewById(R.id.signup_input_email);
signupInputPassword = (EditText) findViewById(R.id.signup_input_password);
btnSignUp = (Button) findViewById(R.id.btn_signup);
btnLinkToLogIn = (Button) findViewById(R.id.btn_link_login);
btnSignUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
submitForm();
}
});
btnLinkToLogIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(SignupActivity.this, LoginActivity.class);
startActivity(intent);
}
});
}
/**
* Validating form
*/
private void submitForm() {
String email = signupInputEmail.getText().toString().trim();
String password = signupInputPassword.getText().toString().trim();
if(!checkEmail()) {
return;
}
if(!checkPassword()) {
return;
}
signupInputLayoutEmail.setErrorEnabled(false);
signupInputLayoutPassword.setErrorEnabled(false);
progressBar.setVisibility(View.VISIBLE);
//create user
auth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(SignupActivity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.d(TAG,"createUserWithEmail:onComplete:" + task.isSuccessful());
progressBar.setVisibility(View.GONE);
if (!task.isSuccessful()) {
Log.d(TAG,"Authentication failed." + task.getException());
} else {
startActivity(new Intent(SignupActivity.this, UserActivity.class));
finish();
}
}
});
Toast.makeText(getApplicationContext(), "You are successfully Registered !!", Toast.LENGTH_SHORT).show();
}
private boolean checkEmail() {
String email = signupInputEmail.getText().toString().trim();
if (email.isEmpty() || !isEmailValid(email)) {
signupInputLayoutEmail.setErrorEnabled(true);
signupInputLayoutEmail.setError(getString(R.string.err_msg_email));
signupInputEmail.setError(getString(R.string.err_msg_required));
requestFocus(signupInputEmail);
return false;
}
signupInputLayoutEmail.setErrorEnabled(false);
return true;
}
private boolean checkPassword() {
String password = signupInputPassword.getText().toString().trim();
if (password.isEmpty() || !isPasswordValid(password)) {
signupInputLayoutPassword.setError(getString(R.string.err_msg_password));
signupInputPassword.setError(getString(R.string.err_msg_required));
requestFocus(signupInputPassword);
return false;
}
signupInputLayoutPassword.setErrorEnabled(false);
return true;
}
private static boolean isEmailValid(String email) {
return !TextUtils.isEmpty(email) && android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
}
private static boolean isPasswordValid(String password){
return (password.length() >= 6);
}
private void requestFocus(View view) {
if (view.requestFocus()) {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
@Override
protected void onResume() {
super.onResume();
progressBar.setVisibility(View.GONE);
}
}
私は認証方法を有効にしましたが、それでも私に[OPERATION_NOT_ALLOWED] – zeeman235
がこのリンクをチェックしますhttp://stackoverflow.com/questions/37465624/firebase-password-reset-keep-getting-error-an-internal-error -has-occured-er –
プロジェクトを最初から作り直して問題を解決したようですが、ありがとうございます。 – zeeman235