java - OperationException 导致错误请求错误

标签 java android firebase debugging firebase-authentication

我已经创建了一个登录页面,它成功地允许用户登录/注销和创建帐户。它工作得很好。代码没有问题。

我后来决定在我的项目中包含一个 MapActivity 来测试一些东西,但后来我决定删除它。自从删除它后,它就不允许用户登录他们的帐户。我收到错误:发生内部错误 [BAD REQUEST] 错误。

我尝试过的事情:

  • 我已在 Firebase 控制台上启用电子邮件/密码。
  • 从我的项目中删除了与 MapActivity 相关的所有内容。
  • 使缓存无效/重新启动。
  • 在不同的模拟器上运行我的程序。

我可以做什么来解决这个问题?如果您想查看代码,请告诉我。提前致谢。

这是 LoginActivity.java 文件:

package com.example.name.myapp;

import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;

public class LoginActivity extends AppCompatActivity {
    private EditText loginEmailText;
    private EditText loginPassText;
    private Button loginBtn;
    private Button loginRegBtn;

    private FirebaseAuth mAuth;
    private ProgressBar loginProgress;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        mAuth = FirebaseAuth.getInstance();

        loginEmailText = (EditText) findViewById(R.id.reg_email);
        loginPassText = (EditText) findViewById(R.id.reg_confirm_pass);
        loginBtn = (Button) findViewById(R.id.login_btn);
        loginRegBtn = (Button) findViewById(R.id.login_reg_btn);
        loginProgress = (ProgressBar) findViewById(R.id.login_progress);

        loginRegBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent myIntent = new Intent(LoginActivity.this, RegisterActivity.class);
                startActivity(myIntent);

            }
        });

        loginBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String loginEmail = loginEmailText.getText().toString();
                String loginPass = loginPassText.getText().toString();

                if(!TextUtils.isEmpty(loginEmail) && !TextUtils.isEmpty(loginPass)) {
                    loginProgress.setVisibility(View.VISIBLE);
                    mAuth.signInWithEmailAndPassword(loginEmail, loginPass).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            if(task.isSuccessful()) {
                                sendToMain();
                            } else {
                                String errorMessage = task.getException().getMessage();
                                Toast.makeText(LoginActivity.this, "Error : " + errorMessage, Toast.LENGTH_LONG).show();
                            }
                            loginProgress.setVisibility(View.INVISIBLE);
                        }
                    });
                }
            }
        });
    }

    @Override
    protected void onStart() {
        super.onStart();

        FirebaseUser currentUser = mAuth.getCurrentUser();

        if(currentUser != null) {
            sendToMain();
        }
    }

    private void sendToMain() {
        Intent mainIntent = new Intent(LoginActivity.this, MainActivity.class);
        startActivity(mainIntent);
        finish();
    }
}

这是我遇到的异常:

a06-07 08:54:38.591 2409-2943/com.google.android.gms.persistent E/AsyncOperation: serviceID=51, operation=GetExperimentTokensOperationCall
OperationException[Status{statusCode=No config packages for log source, or config package not registered, resolution=null}]
    at aelu.a(:com.google.android.gms@12521024@12.5.21 (040700-189987672):32)
    at aelu.a(:com.google.android.gms@12521024@12.5.21 (040700-189987672):66)
    at noj.run(:com.google.android.gms@12521024@12.5.21 (040700-189987672):40)
    at axja.run(:com.google.android.gms@12521024@12.5.21 (040700-189987672):2)
    at nsg.run(:com.google.android.gms@12521024@12.5.21 (040700-189987672):27)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    at nya.run(Unknown Source:7)
    at java.lang.Thread.run(Thread.java:764)

最佳答案

如果有帮助,您可以添加其他异常验证,以检查问题:

mAuth.signInWithEmailAndPassword(login, pass)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
          @Override
           public void onComplete(@NonNull Task<AuthResult> task) {
             if(task.isSuccessful())
              {
                  //-----------
    }else if (task.getException() instanceof FirebaseAuthInvalidUserException) {    
    }else if(((FirebaseAuthException) task.getException()).getErrorCode().equals("ERROR_USER_DISABLED"))
    {
    }    
    else if(((FirebaseAuthException) task.getException()).getErrorCode().equals("ERROR_USER_NOT_FOUND "))
        {
        }else if(((FirebaseAuthException) task.getException()).getErrorCode().equals("ERROR_USER_TOKEN_EXPIRED "))
        {
        }else if(((FirebaseAuthException) task.getException()).getErrorCode().equals("ERROR_INVALID_USER_TOKEN "))
        {
        }
        }
        });

关于java - OperationException 导致错误请求错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50750792/

相关文章:

java - 将二维数组缩放两倍

java - java数组排序类

java - 使用套接字从服务器请求文件

java - 字符串格式()

java - Oracle 存储过程在 Linux 上运行时失败,在 Windows 上工作

android - 使用嵌套改造 2.0 时排队多个 GET 请求

android - Android 上的 Proguard 坏了吗?

c# - 统一的 Firebase 身份验证登录总是返回一个新用户

javascript - 在哪里安全地存储 javascript 发送网格 api key ?

dart - 如何在 Firebase-Dart 中推送?