2016-11-10 13 views
1

エミュレータとデバイスでサインアップしようとすると、このエラーが発生します。認証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); 
    } 
} 

答えて

0

だコンソールで有効にしている場合は、認証方法をご確認くださいFirebaseかどうか。 Google認証を有効にしなかった場合、[OPERATION_NOT_ALLOWED]がない場合と同じ例外が発生します。あなたはフォーラムの投稿https://groups.google.com/forum/#!topic/firebase-talk/JTaIlD-tNxw

で解決策を確認することができます詳細については

詳細についてはFirebase Authマニュアルを参照してください。

同じ問題があります。私は上記フォーラムのポストで解決策を得た。

+0

私は認証方法を有効にしましたが、それでも私に[OPERATION_NOT_ALLOWED] – zeeman235

+0

がこのリンクをチェックしますhttp://stackoverflow.com/questions/37465624/firebase-password-reset-keep-getting-error-an-internal-error -has-occured-er –

+0

プロジェクトを最初から作り直して問題を解決したようですが、ありがとうございます。 – zeeman235

関連する問題