【问题标题】:Firebase Authentication Not successfullFirebase 身份验证不成功
【发布时间】:2020-03-28 11:45:16
【问题描述】:

我已经在 Firebase 上创建了一个 Android 项目并注册了应用程序,现在我没有收到来自 Firebase 的消息我已经将 Jason 文件放在了 app 文件夹中 我也启用了 Firebase 中的电话身份验证 请帮我解决错误。

错误

I/BiChannelGoogleApi: [FirebaseAuth: ] getGoogleApiForMethod() returned Gms:    
com.google.firebase.auth.api.internal.zzaq@a1576ff
D/vrification failes: asdddddddddddddddddddddddddddddddddddd`

我的代码

 findViewById(R.id.bt1).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            sendVerificationCode();
        }
    });
    findViewById(R.id.bt2).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            verifySignInCode();
        }
    });
}
private void verifySignInCode(){

    String code=et2.getText().toString().trim();
    PhoneAuthCredential credential=PhoneAuthProvider.getCredential(codesent,code);
    signInWithAuthCredential(credential);
}

private void signInWithAuthCredential(PhoneAuthCredential credential){
    mAuth.signInWithCredential(credential).addOnCompleteListener(this, new   
    OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
       if(task.isSuccessful()){
           Toast.makeText(MainActivity.this,"login success",Toast.LENGTH_LONG).show();

       } else{
            if(task.getException() instanceof FirebaseAuthInvalidCredentialsException){
                Toast.makeText(MainActivity.this,"login fail",Toast.LENGTH_LONG).show();
            }
       }
        }
    });
}
private void sendVerificationCode(){
    String phone=et1.getText().toString().trim();
    if(phone.isEmpty()){
        et1.setError("required");
        et1.requestFocus();
        return;
    }
    if(phone.length()<10){
        et1.setError("valid");
        et1.requestFocus();
        return;
    }
    PhoneAuthProvider.getInstance().verifyPhoneNumber(
          phone,
          60,
          TimeUnit.SECONDS,
          this,
          mCallbacks);
}
PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks=new                
PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
    @Override
    public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
    }
    @Override
    public void onVerificationFailed(FirebaseException e) {
       Log.d("vrification failed","asdddddddddddddddddddddddddddddddddddd");
    }
    @Override
    public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken forceResendingToken){
        super.onCodeSent(s, forceResendingToken);
        codesent=s;
        Log.d("verification started","eeeeeeeeeeeeeeeeeeeeeeeeeeee");
    }
  };
}`

谁能告诉我代码或 Firebase 配置中的错误是什么

【问题讨论】:

  • 请发布堆栈跟踪。
  • 在 logcat 中哪里可以找到堆栈跟踪?
  • 改变你的onVerificationFailed 把它放进去。 `Log.d("验证失败", e.getMessage());
  • 显示此错误:此应用无权使用 Firebase 身份验证。请确认在 Firebase 控制台中配置了正确的包名称和 SHA-1。 [应用验证失败]
  • 我刚刚用 com.example.verify 创建了项目,然后把 jason 文件放到 app 文件夹中,然后打开手机验证就可以了......我还需要做什么?跨度>

标签: java android firebase firebase-authentication


【解决方案1】:

您必须将 SHA-1 密钥放入您的 firebase 项目中。

使用 Android Studio 检索 SHA-1 密钥。

  1. 在 Android Studio 的右侧,您会找到 Gradle 选项。
  2. 然后选择App -> Tasks -> android -> 双击signingReport
  3. 它将在 Build 中为您提供 SHA-1 密钥

现在将 SHA-1 密钥放入您的 Firebase 项目中。

打开Firebase Console,然后进入项目设置。

在设置页面的底部,您会发现您的应用程序在其中添加了指纹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-16
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 2016-01-19
    • 2020-10-31
    相关资源
    最近更新 更多