OperationException导致错误的请求错误

时间:2018-06-07 22:06:04

标签: java android firebase debugging firebase-authentication

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

我后来决定在我的项目中包含一个MapActivity来测试一些东西,但之后我决定删除它。自从删除它以来,它不允许用户登录他们的帐户。我收到Error: An internal error has occurred [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)

1 个答案:

答案 0 :(得分:0)

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

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 "))
        {
        }
        }
        });