android - 应用程序未使用 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);
}
}
解决方案
我的猜测是你在这行的逻辑上有一些错误?
else if (!username.isEmpty()&& password.isEmpty())
我认为应该是
else if (!username.isEmpty()&& !password.isEmpty())
此外,在此处显示您的错误消息也会很有帮助。
推荐阅读
- amazon-web-services - 删除 Elastic beanstack 创建的 s3 存储桶
- javascript - 向元素添加数据属性在第一次尝试时不起作用
- c# - 您将如何使用日期来调试 Specified Cast 无效?
- python - 通过严格的python关键字调用函数
- session - 同一网络会话中的永久计数器
- node.js - 来自前端的数据在后端重复两次
- dynamics-crm - PowerAutomate 中的 DateDiff() 函数:它在哪里?
- javascript - 切换按钮似乎不起作用?
- c# - RadGrid - 如果多个数据库列中的值不为空,则在单元格中输入值
- mysql - 在同一个数据库中的多个表上运行选择查询