尝试创建帐户时出现Firebase Auth错误

时间:2020-11-03 15:33:50

标签: java android firebase firebase-authentication

自8月份以来我一直没有碰过这段代码,它运行良好,但是自从昨天开始重新使用它以来,我一直遇到此错误:

W / TAG:createUserWithEmail:failure

com.google.firebase.FirebaseException:发生内部错误。 [无法解析主机“ www.googleapis.com”:没有与主机名关联的地址]

我的所有依赖项均已正确设置。我检查了无数次,还花了数小时在YouTube上,重新下载了json文件,更新了Android Studio和我的模拟器。这是我的不得已。我希望有人能帮帮忙。这是我的代码

        mAuth.createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        // Sign in success, update UI with the signed-in user's information
                        Log.d(TAG, "createUserWithEmail:success");
                        FirebaseUser user = mAuth.getCurrentUser();
                        Toast.makeText(Register.this, "Sign up success! Taking you to login...",
                                Toast.LENGTH_SHORT).show();
                        
                         
                    } else {
                        // If sign in fails, display a message to the user.
                        Log.w(TAG, "createUserWithEmail:failure", task.getException());
                        Toast.makeText(Register.this, "Authentication failed.",
                                Toast.LENGTH_SHORT).show();
                    
                    }
      }
            })
    .addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Log.d(TAG, e.getMessage());
            Log.d(TAG, "FAIL");
        }
    });

1 个答案:

答案 0 :(得分:0)

我上次使用Firebase身份验证时,使用以下代码:

AuthUI.IdpConfig googleIdp = new AuthUI.IdpConfig.EmailBuilder()
                        .build();

                startActivityForResult(AuthUI.getInstance()
                        .createSignInIntentBuilder()
                        .setIsSmartLockEnabled(false)
                        .setTosAndPrivacyPolicyUrls("Política de privacidad", "http://twitter.com")
                        .setAvailableProviders(Arrays.asList(new AuthUI.IdpConfig.EmailBuilder().build(),
                                facebookIdp, googleIdp))
                        .setTheme(R.style.GreenTheme)
                        .setLogo(R.drawable.img_multi_login)
                        .build(), RC_SIGN_IN);

结果:

 @Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == RC_SIGN_IN) {
        if (resultCode == RESULT_OK) {
            Toast.makeText(this, "Welcome", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(this, "Something went wrong", Toast.LENGTH_SHORT).show();
        }
    } 
}

并使用AuthStateListener更改用户的数据(如果发生了更改或是否已登录用户)。

我认为这是在Android上实现Firebase身份验证的最简单方法。