首页 > 解决方案 > android 应用的用户没有出现在 Firebase 中

问题描述

我制作了一个android应用程序,我刚刚使用firebase创建了登录和注册页面,但是当我使用新帐户注册时,应该记录相应的帐户,或者它应该显示在我的Firebase的用户部分但在用户部分显示“尚未添加用户”此消息。为什么会这样?

这是我的 AndroidManifest.xml。

 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.example.easylearn">

 <application
  android:allowBackup="true"
  android:icon="@mipmap/ic_launcher"
  android:label="@string/app_name"
  android:roundIcon="@mipmap/ic_launcher_round"
  android:supportsRtl="true"
  android:theme="@style/AppTheme">
  <activity android:name=".HomeActivity"></activity>
  <activity android:name=".LoginActivity" />
  <activity android:name=".MainActivity">
  <intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
  </activity>
  </application>
  </manifest>

这是我的 MainActivity.java

  package com.example.easylearn;
  import androidx.annotation.NonNull;
  import androidx.appcompat.app.AppCompatActivity;
  import android.content.Intent;
  import android.media.MediaPlayer;
  import android.os.Bundle;
  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.FirebaseAuth;
  public class MainActivity extends AppCompatActivity {

  EditText emailId,password;
  Button btnSignUp;
  TextView tvSignIn;
  FirebaseAuth mFirebaseAuth;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  mFirebaseAuth = FirebaseAuth.getInstance();
  emailId = findViewById(R.id.editText);
  password = findViewById(R.id.editText2);
  btnSignUp = findViewById(R.id.button2);
  tvSignIn = findViewById(R.id.textView);
  btnSignUp.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
  String email = emailId.getText().toString();
  String pwd = password.getText().toString();
  if(email.isEmpty())
  {
  emailId.setError("Please enter email id");
  emailId.requestFocus();
  }
  else if(pwd.isEmpty())
  {
  password.setError("Please enter password");
  password.requestFocus();
  }
  else if(email.isEmpty() && pwd.isEmpty())
  {
  Toast.makeText(MainActivity.this,"Fiels are Empty!",Toast.LENGTH_SHORT).show();
  }
  else if(!(email.isEmpty() && pwd.isEmpty()))
  {
  mFirebaseAuth.createUserWithEmailAndPassword(email,pwd).addOnCompleteListener(MainActivity.this,
  new OnCompleteListener<com.google.firebase.auth.AuthResult>() {
  @Override
  public void onComplete(@NonNull Task<com.google.firebase.auth.AuthResult> task) 
  {
  if(task.isSuccessful())
  {
  Toast.makeText(MainActivity.this,"SignUp Unsuccessful,Please Try 
  Again..",Toast.LENGTH_SHORT).show();
  }
  else {
  startActivity(new Intent(MainActivity.this,HomeActivity.class));
  }
  }
  });
  }
  else
  {
  Toast.makeText(MainActivity.this,"Error Occured!",Toast.LENGTH_SHORT).show();
  }
  }
  });
  tvSignIn.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
  Intent i = new Intent(MainActivity.this,LoginActivity.class);
  startActivity(i);
  }
  });
  }
  }

这是我的 LoginActivity.java

  package com.example.easylearn;

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

  import android.content.Context;
  import android.content.Intent;
  import android.os.Bundle;
  import android.view.View;
  import android.widget.Button;
  import android.widget.EditText;
  import android.widget.TextView;
  import android.widget.Toast;
  import com.google.firebase.auth.FirebaseUser;
  import com.google.android.gms.tasks.OnCompleteListener;
  import com.google.android.gms.tasks.Task;
  import com.google.firebase.auth.FirebaseAuth;

  public class LoginActivity extends AppCompatActivity {

  EditText emailId,password;
  Button btnSignIn;
  TextView tvSignUp;
  FirebaseAuth mFirebaseAuth;
  private FirebaseAuth.AuthStateListener mAuthStateListener;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_login);

  mFirebaseAuth = FirebaseAuth.getInstance();
  emailId = findViewById(R.id.editText);
  password = findViewById(R.id.editText2);
  btnSignIn = findViewById(R.id.button2);
  tvSignUp = findViewById(R.id.textView);

  mAuthStateListener = 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();
  }
  }
  };

  btnSignIn.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
  String email = emailId.getText().toString();
  String pwd = password.getText().toString();
  if(email.isEmpty())
  {
  emailId.setError("Please enter email id");
  emailId.requestFocus();
  }
  else if(pwd.isEmpty())
  {
  password.setError("Please enter password");
  password.requestFocus();
  }
  else if(email.isEmpty() && pwd.isEmpty())
  {
  Toast.makeText(LoginActivity.this,"Fiels are Empty!",Toast.LENGTH_SHORT).show();
  }
  else if(!(email.isEmpty() && pwd.isEmpty()))
  {

  mFirebaseAuth.signInWithEmailAndPassword(email,pwd).addOnCompleteListener(LoginActivity.this, new 
  OnCompleteListener<com.google.firebase.auth.AuthResult>() {
  @Override
  public void onComplete(@NonNull Task<com.google.firebase.auth.AuthResult> task) 
  {
  if(!task.isSuccessful()){
  Toast.makeText(LoginActivity.this,"Login Error,Please Login      
  again..",Toast.LENGTH_SHORT).show();
  }
  else{
  Intent inToHome = new Intent(LoginActivity.this,HomeActivity.class);
  startActivity(inToHome);
  }
  }
  });
  }
  else
  {
  Toast.makeText(LoginActivity.this,"Error Occured!",Toast.LENGTH_SHORT).show();
  }
  }
  });

  tvSignUp.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
  Intent intSignUp = new Intent(LoginActivity.this,MainActivity.class);
  startActivity(intSignUp);
  }
  });
  }

  @Override
  protected void onStart() {
  super.onStart();
  mFirebaseAuth.addAuthStateListener(mAuthStateListener);
  }
  }`

标签: firebase-authentication

解决方案


推荐阅读