Регистрация успешно завершена, но при использовании firebase вход не выполнен - PullRequest
0 голосов
/ 19 мая 2018
package com.example.android.login;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
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 MainActivity extends Activity {

    private EditText name, password;
    private TextView signUp;
    private Button login;
    String Name, Password,nm,ps;
    String NAME=null, PASSWORD=null, EMAIL=null;
    //to get an instance of firebase authentication
    //firebaseAuth is the object of the main class FirebaseAuth (to import libraries od the authentication part of firebase)
    private FirebaseAuth firebaseAuth;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        name = (EditText) findViewById(R.id.ID);
        password = (EditText) findViewById(R.id.password);
        signUp = (TextView) findViewById(R.id.tvRegister);
        login = (Button) findViewById(R.id.button);

        //instance of firebase authentication
        firebaseAuth = FirebaseAuth.getInstance();

        //object of main class
        //to check is an user is already logged in, in our app or not
        //it checks with the database if a user has already logged in with our app or not
        FirebaseUser user = firebaseAuth.getCurrentUser();

        /*if(user !=null) //it checks if a user has already logged in
        {
            finish(); //finish the current activity
            Intent intent = new Intent(MainActivity.this, HomePageActivity.class);
            startActivity(intent);

        }*/

        login.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                validate(name.getText().toString(),password.getText().toString());

            }
        });

        signUp.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent i = new Intent(MainActivity.this, RegistrationActivity.class);
                startActivity(i);
            }
        });

        ImageButton holiday =(ImageButton) findViewById(R.id.holiday);

        holiday.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Holiday h = new Holiday();
                h.execute();
            }
        });

    }

    private void validate(String userName, String userPassword) {

        firebaseAuth.signInWithEmailAndPassword(userName,userPassword).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if(task.isSuccessful()) {
                    Toast.makeText(MainActivity.this,"Login Successful",Toast.LENGTH_SHORT).show();
                    Intent intent = new Intent(MainActivity.this, HomePageActivity.class);
                    startActivity(intent);
                }
                else
                    Toast.makeText(MainActivity.this,"Login Failed",Toast.LENGTH_SHORT).show();
            }
        });

    }

}

Я пытаюсь создать страницу входа, и если пользователь еще не зарегистрирован, он / она может зарегистрироваться.Регистрация успешно завершена, и данные хранятся в базе данных, но пока я пытаюсь войти в систему, он сообщает, что вход не выполнен.Он не может получить данные из базы данных.Это мое основное занятие - страница входа.

пакет com.example.android.login;

import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
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.AuthResult;
import com.google.firebase.auth.FirebaseAuth;

public class RegistrationActivity extends AppCompatActivity {

    private EditText userName, password, userEmail;
    private Button regButton;
    private TextView userLogin;
    private FirebaseAuth firebaseAuth;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_registration);
        setupUIViews();
        firebaseAuth = FirebaseAuth.getInstance();

        regButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(validate())
                {
                    //Update Data to database
                    String user_email = userEmail.getText().toString().trim();
                    String pass = password.getText().toString().trim();

                    firebaseAuth.createUserWithEmailAndPassword(user_email,pass).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            if(task.isSuccessful()) {
                                Toast.makeText(RegistrationActivity.this, "Registration Successful", Toast.LENGTH_SHORT).show();

                                startActivity(new Intent(RegistrationActivity.this, MainActivity.class));
                            }
                            else
                                Toast.makeText(RegistrationActivity.this, "Registration Failed", Toast.LENGTH_SHORT).show();
                        }
                    });
                }
            }
        });

        userLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(RegistrationActivity.this, MainActivity.class));
            }
        });
    }

    private void setupUIViews() {
        userName = (EditText)findViewById(R.id.etUserName);
        userEmail = (EditText)findViewById(R.id.etEmail);
        password = (EditText)findViewById(R.id.etUserPassword);
        regButton = (Button)findViewById(R.id.btnRegister);
        userLogin = (TextView)findViewById(R.id.tvUserLogin);
    }

    private Boolean validate() {
        Boolean result = false;

        String name = userName.getText().toString();
        String email = userEmail.getText().toString();
        String passwrd = password.getText().toString();

        if(name.isEmpty() || passwrd.isEmpty() || email.isEmpty()) {
            Toast.makeText(this,"Please Enter all details", Toast.LENGTH_SHORT).show();
        }
        else
            result = true;
        return result;
    }

}

Это моя регистрация.Я проверил инструменты -> Firebase -> Аутентификация и все соединения выполнены правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...