Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android中的Firebase用户登录验证显示错误_Android_Firebase_Firebase Authentication - Fatal编程技术网

Android中的Firebase用户登录验证显示错误

Android中的Firebase用户登录验证显示错误,android,firebase,firebase-authentication,Android,Firebase,Firebase Authentication,我正在使用Firebase Auth让用户注册和登录,注册登录工作正常,我通过Firebase助手进行了检查,但在插入详细信息后在我的设备上运行时,该部分工作不正常。它在日志中显示以下错误: FATAL EXCEPTION: main Process: com.android.shubham.presentsir, PID: 9679 java.lang.IllegalStateException: Could not execute method for android:onC

我正在使用Firebase Auth让用户注册和登录,注册登录工作正常,我通过Firebase助手进行了检查,但在插入详细信息后在我的设备上运行时,该部分工作不正常。它在日志中显示以下错误:

FATAL EXCEPTION: main
    Process: com.android.shubham.presentsir, PID: 9679
    java.lang.IllegalStateException: Could not execute method for android:onClick
        at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
        at android.view.View.performClick(View.java:4855)
        at android.view.View$PerformClick.run(View.java:20280)
        at android.os.Handler.handleCallback(Handler.java:815)
        at android.os.Handler.dispatchMessage(Handler.java:104)
        at android.os.Looper.loop(Looper.java:194)
        at android.app.ActivityThread.main(ActivityThread.java:5653)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
        at android.view.View.performClick(View.java:4855) 
        at android.view.View$PerformClick.run(View.java:20280) 
        at android.os.Handler.handleCallback(Handler.java:815) 
        at android.os.Handler.dispatchMessage(Handler.java:104) 
        at android.os.Looper.loop(Looper.java:194) 
        at android.app.ActivityThread.main(ActivityThread.java:5653) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
     Caused by: java.lang.IllegalArgumentException: Given String is empty or null
        at com.google.android.gms.common.internal.zzbo.zzcF(Unknown Source)
        at com.google.firebase.auth.FirebaseAuth.signInWithEmailAndPassword(Unknown Source)
        at com.android.shubham.presentsir.Login.gotoDashboard(Login.java:37)
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
        at android.view.View.performClick(View.java:4855) 
        at android.view.View$PerformClick.run(View.java:20280) 
        at android.os.Handler.handleCallback(Handler.java:815) 
        at android.os.Handler.dispatchMessage(Handler.java:104) 
        at android.os.Looper.loop(Looper.java:194) 
        at android.app.ActivityThread.main(ActivityThread.java:5653) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
并假设我的清单工作正常,因为我已经检查过了

private EditText email,pass;
private FirebaseAuth mAuth;
ProgressDialog progressDialog;
private String email1,pass1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate( savedInstanceState );

    setContentView( R.layout.activity_login );
    email=findViewById( R.id.editText5 );
    pass=findViewById( R.id.editText6 );
    email1=email.getText().toString();
    pass1=pass.getText().toString();
    mAuth=FirebaseAuth.getInstance();
}

public void gotoDashboard(View view) {
//                progressDialog.setMessage( "Fetching your data" );
//              progressDialog.show();
//Error occured from here as it showing the error from this line of code can you help me from where I have did this wrong

    mAuth.signInWithEmailAndPassword( email1,pass1 )
            .addOnCompleteListener( new OnCompleteListener<AuthResult>(){
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    progressDialog.dismiss();
                    if(task.isSuccessful()){
                        startActivity( new Intent( Login.this,Dashboard.class ) );
                    }else{
                        Toast.makeText( Login.this, ""e.toString(), Toast.LENGTH_SHORT ).show();
                    }

                }
            } );
}
私人编辑文本电子邮件,通过;
私人消防队;
进行对话进行对话;
私有字符串email1,pass1;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u登录);
email=findviewbyd(R.id.editText5);
通过=findViewById(R.id.editText6);
email1=email.getText().toString();
pass1=pass.getText().toString();
mAuth=FirebaseAuth.getInstance();
}
公共无效gotoDashboard(视图){
//progressDialog.setMessage(“获取数据”);
//progressDialog.show();
//错误发生在这里,因为它显示了这行代码中的错误。你能帮助我从哪里做错了吗
mAuth.使用Email和密码登录(email1,pass1)
.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
progressDialog.disclose();
if(task.issusccessful()){
startActivity(新意图(Login.this、Dashboard.class));
}否则{
Toast.makeText(Login.this),“e.toString(),Toast.LENGTH_SHORT.show();
}
}
} );
}

您似乎正在通过电子邮件和密码向
登录传递
null
或空字符串,因此
email1
pass1
没有值。在使用Email和Password调用
登录之前检查它们的值:

public void gotoDashboard(View view) {
  if (email1 != null && !email1.isEmpty() && pass1 != null && !pass1.isEmpty()) {
    mAuth.signInWithEmailAndPassword( email1,pass1 )
         .addOnCompleteListener( new OnCompleteListener<AuthResult>(){
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                progressDialog.dismiss();
                if(task.isSuccessful()){
                    startActivity( new Intent( Login.this,Dashboard.class ) );
                }else{
                    Toast.makeText( Login.this, ""e.toString(), Toast.LENGTH_SHORT ).show();
                }

            }
         });
  }
}
public void gotoDashboard(视图){
if(email1!=null&&!email1.isEmpty()&&pass1!=null&&!pass1.isEmpty()){
mAuth.使用Email和密码登录(email1,pass1)
.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
progressDialog.disclose();
if(task.issusccessful()){
startActivity(新意图(Login.this、Dashboard.class));
}否则{
Toast.makeText(Login.this),“e.toString(),Toast.LENGTH_SHORT.show();
}
}
});
}
}

不过,这只是一个快速解决方案。你应该弄清楚为什么
email1
pass1
没有值,并防止在这种情况下触发
gotoDashboard

这是因为你没有在
gotoDashboard()中使用
email
password
的编辑文本值
在点击按钮时触发,因此发送
email1
pass1
的空值。你喜欢这样吗

public void gotoDashboard(View view)
{
    email1=email.getText().toString();
    pass1=pass.getText().toString();
    mAuth=FirebaseAuth.getInstance();

    if (email1 != null && !email1.isEmpty() && pass1 != null && !pass1.isEmpty())
    {
        mAuth.signInWithEmailAndPassword(email1, pass1)
          .addOnCompleteListener(new OnCompleteListener<AuthResult>()
        {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task)
            {
                progressDialog.dismiss();
                if (task.isSuccessful())
                {
                    startActivity(new Intent(Login.this, Dashboard.class));
                }
                else
                {
                    Toast.makeText(Login.this, ""e.toString(), Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}
public void gotoDashboard(视图)
{
email1=email.getText().toString();
pass1=pass.getText().toString();
mAuth=FirebaseAuth.getInstance();
if(email1!=null&&!email1.isEmpty()&&pass1!=null&&!pass1.isEmpty())
{
mAuth.使用Email和密码登录(email1,pass1)
.addOnCompleteListener(新的OnCompleteListener()
{
@凌驾
未完成的公共void(@NonNull任务)
{
progressDialog.disclose();
if(task.issusccessful())
{
startActivity(新意图(Login.this、Dashboard.class));
}
其他的
{
Toast.makeText(Login.this),“e.toString(),Toast.LENGTH_SHORT.show();
}
}
});
}
}