【问题标题】:OperationException causing bad request errorOperationException 导致错误请求错误
【发布时间】:2018-06-07 22:06:04
【问题描述】:

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

我后来决定在我的项目中包含一个 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)

【问题讨论】:

  • 在 Stack Overflow 上,您应该始终发布与问题相关的代码。
  • @DougStevenson 很抱歉,现在发布。
  • 你的应用中添加了json配置吗?或注册用户
  • @Pavneet_Singh 我没有 json 配置。是的,用户是注册用户。
  • 您是否完成了足够多的日志记录以了解此错误发生的时间点?

标签: java android firebase debugging firebase-authentication


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-23
    • 2020-04-22
    • 1970-01-01
    • 2020-02-03
    • 2016-10-13
    • 2021-03-31
    • 1970-01-01
    • 2019-11-10
    相关资源
    最近更新 更多