Firebase身份验证无休止的失败

时间:2017-09-10 16:27:40

标签: java android firebase firebase-authentication

我的应用在注册时验证新用户失败。该应用程序已连接到Google Firebase,似乎没有任何错误。代码似乎也没关系,它显示没有错误,我检查了一切10000000次。所需的一切都已导入。当我尝试注册新用户时,会出现一个错误:"发生了内部错误。 [未配置访问权限。 Google Identity Toolkit API尚未在项目中使用(此处为12位项目编号),之前或已禁用。通过访问console.developers.google.com/apis/api / ...项目编号启用它,然后重试。如果您最近启用了此API,请等待几分钟,以便将操作传播到我们的系统并重试。]我昨天设置了身份验证,因此我不知道该怎么做...

public class RegisterUserActivity extends AppCompatActivity {
    //DECLARE FIELDS
    EditText userEmailCreateEditText, userPassWordCreateEditText;
    LinearLayout createAccountBtn;
    //FIREBASE AUTHENTICATION ID
    FirebaseAuth mAuth;
    FirebaseAuth.AuthStateListener mAuthListener;
    //PROGRESS DIALOG
    ProgressDialog mProgressDialog;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register_user);
        //ASSIGN ID'S
        userEmailCreateEditText = ( EditText ) findViewById(R.id.emailRegisterEditText);
        userPassWordCreateEditText = (EditText) findViewById(R.id.passwordRegisterEditText);
        createAccountBtn = ( LinearLayout) findViewById(R.id.createAccountSubmitBtn);
        //PROGRESS DIALOG INSTANCE
        mProgressDialog = new ProgressDialog(this);
        //FIREBASE INSTANCE
        mAuth = FirebaseAuth.getInstance();
        mAuthListener = new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                //CHECK USER
                FirebaseUser user = firebaseAuth.getCurrentUser();
                if( user != null )
                {
                    Intent moveToHome = new Intent(RegisterUserActivity.this, Home.class);
                    moveToHome.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    startActivity( moveToHome );
                }
            }
        };
        mAuth.addAuthStateListener(mAuthListener);
        //CREATE ON CLICK LISTENER
        createAccountBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mProgressDialog.setTitle("Create Account");
                mProgressDialog.setMessage("Wait while the account is being created..");
                mProgressDialog.show();
                createUserAccount();
            }
        });
    }
    @Override
    protected void onStart() {
        super.onStart();
        mAuth.addAuthStateListener(mAuthListener);
    }
    @Override
    protected void onStop() {
        super.onStop();
        mAuth.removeAuthStateListener(mAuthListener);
    }
    //LOGIC FOR CREATING THE USER ACCOUNT
    private void createUserAccount() {
        String emailUser, passUser;
        emailUser = userEmailCreateEditText.getText().toString().trim();
        passUser = userPassWordCreateEditText.getText().toString().trim();
        if( !TextUtils.isEmpty(emailUser) && !TextUtils.isEmpty(passUser))
        {
            mAuth.createUserWithEmailAndPassword(emailUser, passUser).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if( task.isSuccessful() )
                    {
                        Toast.makeText(RegisterUserActivity.this, "Account created Success", Toast.LENGTH_LONG).show();
                        mProgressDialog.dismiss();
                        Intent moveToHome = new Intent(RegisterUserActivity.this, Home.class);
                        moveToHome.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                        startActivity( moveToHome );
                    }else
                    {
                        Toast.makeText(RegisterUserActivity.this, task.getException().getMessage(), Toast.LENGTH_LONG).show();
                        mProgressDialog.dismiss();
                        task.getException().getMessage();
                    }
                }
            });
        }
    }
}

1 个答案:

答案 0 :(得分:0)

Android应用的project_id文件中的google-services.json应与启用了Google登录身份验证的Firebase控制台项目相同。尝试从Firebase控制台重新下载google-services.json,然后重新构建您的Android应用。