首页 > 解决方案 > 应用程序未使用 Firebase 运行

问题描述

在这里,我正在处理登录活动,它使用 firebase 存储用户的用户名和密码,当我尝试在我的模拟器上运行此活动时,它的显示应用程序已停止。我检查了两次代码,但找不到该错误。我授予 Internet 权限以及 Firebase 客户端、身份验证和核心库。它是否需要任何其他库

package com.example.firebasedemo;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
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 {

    EditText user1,pass2;
    Button button;
    TextView textView;
    FirebaseAuth mFirebaseauth;
    private FirebaseAuth.AuthStateListener mAutoSateListener;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        user1=(EditText) findViewById(R.id.username);
        pass2=(EditText)findViewById(R.id.password);
        button=(Button)findViewById(R.id.signup);
        textView=(TextView)findViewById(R.id.toSignIN);
        mFirebaseauth=FirebaseAuth.getInstance();

        mAutoSateListener=new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                FirebaseUser mFirebaseUser=mFirebaseauth.getCurrentUser();
                if (mFirebaseUser!=null)
                {
                    Toast.makeText(LoginActivity.this,"You are logged in",Toast.LENGTH_SHORT).show();
                    Intent i=new Intent(LoginActivity.this,HomeActivity.class);
                    startActivity(i);
                }
                else {
                    Toast.makeText(LoginActivity.this,"Please Login",Toast.LENGTH_SHORT).show();
                }
            }
        };
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String username=user1.getText().toString();
                String password=pass2.getText().toString();
                if (username.isEmpty())
                {
                    user1.setError("Please enter email ID");
                    user1.requestFocus();
                }
                else if (password.isEmpty())
                {
                    pass2.setError("Please enter Password");
                    pass2.requestFocus();
                }
                else if (username.isEmpty()&& password.isEmpty())
                {
                    Toast.makeText(LoginActivity.this,"Fields are Empty",Toast.LENGTH_SHORT).show();
                }
                else if (!username.isEmpty()&& password.isEmpty())
                {
                   mFirebaseauth.signInWithEmailAndPassword(username,password).addOnCompleteListener(LoginActivity.this, new OnCompleteListener<AuthResult>() {
                       @Override
                       public void onComplete(@NonNull Task<AuthResult> task) {
                           if (!task.isSuccessful()) {
                               Toast.makeText(LoginActivity.this,"Login error ,Please login Again",Toast.LENGTH_SHORT).show();

                           }
                           else {
                               Intent i=new Intent(LoginActivity.this,HomeActivity.class);
                               startActivity(i);
                           }
                       }
                   });
                            }
                            else {
                               Intent intent=new Intent(LoginActivity.this,HomeActivity.class);
                               startActivity(intent);
                            }
                        }
                    });
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent i =new Intent(LoginActivity.this,MainActivity.class);
                startActivity(i);
            }
        });
                }
                protected void onStart()
                {
                    super.onStart();
                    mFirebaseauth.addAuthStateListener(mAutoSateListener);
                }

            }

标签: androidfirebasefirebase-authentication

解决方案


我的猜测是你在这行的逻辑上有一些错误?

else if (!username.isEmpty()&& password.isEmpty())

我认为应该是

else if (!username.isEmpty()&& !password.isEmpty())

此外,在此处显示您的错误消息也会很有帮助。


推荐阅读