Ir para o console

Primeiros passos com o Firebase Authentication no Android

Conectar seu app ao Firebase

Adicione o Firebase ao projeto para Android, caso ainda não tenha feito isso.

No arquivo build.gradle do nível de projeto, certifique-se de incluir repositório Maven do Google, nas seções buildscript e allprojects.

Adicionar o Firebase Authentication ao seu app

Adicione as dependências da biblioteca do Firebase Authentication para Android ao arquivo Gradle no nível do aplicativo do módulo (geralmente app/build.gradle):

implementation 'com.google.firebase:firebase-auth:18.1.0'

Para usar um provedor de autenticação, é necessário ativá-lo no Console do Firebase. Acesse a página "Método de login" na seção "Firebase Authentication" para ativar o login de e-mail/senha e outros provedores de identidade que você quer no seu app.

Verificar o estado atual da autenticação

  1. Declare uma instância do FirebaseAuth.

    Java

    private FirebaseAuth mAuth;

    Kotlin

    private lateinit var auth: FirebaseAuth
  2. No método onCreate(), inicialize a instância FirebaseAuth.

    Java

    // Initialize Firebase Auth
    mAuth = FirebaseAuth.getInstance();

    Kotlin

    // Initialize Firebase Auth
    auth = FirebaseAuth.getInstance()
  3. Ao inicializar sua atividade, verifique se o usuário está conectado no momento.

    Java

    @Override
    public void onStart() {
        super.onStart();
        // Check if user is signed in (non-null) and update UI accordingly.
        FirebaseUser currentUser = mAuth.getCurrentUser();
        updateUI(currentUser);
    }

    Kotlin

    public override fun onStart() {
        super.onStart()
        // Check if user is signed in (non-null) and update UI accordingly.
        val currentUser = auth.currentUser
        updateUI(currentUser)
    }

Login de novos usuários

Crie um novo método createAccount que inclua um endereço de e-mail e uma senha, valide esses dois elementos e gere um novo usuário com o método [createUserWithEmailAndPassword] (/docs/reference/android/com/google/firebase/auth/FirebaseAuth.html#createUserWithEmailAndPassword(java.lang.String, java.lang.String).

Java

mAuth.createUserWithEmailAndPassword(email, password)
        .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (task.isSuccessful()) {
                    // Sign in success, update UI with the signed-in user's information
                    Log.d(TAG, "createUserWithEmail:success");
                    FirebaseUser user = mAuth.getCurrentUser();
                    updateUI(user);
                } else {
                    // If sign in fails, display a message to the user.
                    Log.w(TAG, "createUserWithEmail:failure", task.getException());
                    Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",
                            Toast.LENGTH_SHORT).show();
                    updateUI(null);
                }

                // ...
            }
        });

Kotlin

auth.createUserWithEmailAndPassword(email, password)
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                // Sign in success, update UI with the signed-in user's information
                Log.d(TAG, "createUserWithEmail:success")
                val user = auth.currentUser
                updateUI(user)
            } else {
                // If sign in fails, display a message to the user.
                Log.w(TAG, "createUserWithEmail:failure", task.exception)
                Toast.makeText(baseContext, "Authentication failed.",
                        Toast.LENGTH_SHORT).show()
                updateUI(null)
            }

            // ...
        }

Adicione um formulário para registrar novos usuários com o e-mail e a senha deles, além de chamar esse novo método quando ele for enviado. Veja um exemplo na nossa amostra do guia de início rápido.

Login de usuários existentes

Crie um novo método signIn que inclua um endereço de e-mail e uma senha, valide esses dois elementos e faça o login do usuário com o método signInWithEmailAndPassword.

Java

mAuth.signInWithEmailAndPassword(email, password)
        .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (task.isSuccessful()) {
                    // Sign in success, update UI with the signed-in user's information
                    Log.d(TAG, "signInWithEmail:success");
                    FirebaseUser user = mAuth.getCurrentUser();
                    updateUI(user);
                } else {
                    // If sign in fails, display a message to the user.
                    Log.w(TAG, "signInWithEmail:failure", task.getException());
                    Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",
                            Toast.LENGTH_SHORT).show();
                    updateUI(null);
                }

                // ...
            }
        });

Kotlin

auth.signInWithEmailAndPassword(email, password)
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                // Sign in success, update UI with the signed-in user's information
                Log.d(TAG, "signInWithEmail:success")
                val user = auth.currentUser
                updateUI(user)
            } else {
                // If sign in fails, display a message to the user.
                Log.w(TAG, "signInWithEmail:failure", task.exception)
                Toast.makeText(baseContext, "Authentication failed.",
                        Toast.LENGTH_SHORT).show()
                updateUI(null)
            }

            // ...
        }

Adicione um formulário para fazer o login dos usuários com o e-mail e a senha deles, além de chamar esse novo método quando ele for enviado. Veja um exemplo na nossa amostra do guia de início rápido.

Acessar as informações do usuário

Se um usuário tiver feito login, você poderá consultar os dados da conta dele a qualquer momento com o método getCurrentUser.

Java

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
    // Name, email address, and profile photo Url
    String name = user.getDisplayName();
    String email = user.getEmail();
    Uri photoUrl = user.getPhotoUrl();

    // Check if user's email is verified
    boolean emailVerified = user.isEmailVerified();

    // The user's ID, unique to the Firebase project. Do NOT use this value to
    // authenticate with your backend server, if you have one. Use
    // FirebaseUser.getIdToken() instead.
    String uid = user.getUid();
}

Kotlin

val user = FirebaseAuth.getInstance().currentUser
user?.let {
    // Name, email address, and profile photo Url
    val name = user.displayName
    val email = user.email
    val photoUrl = user.photoUrl

    // Check if user's email is verified
    val emailVerified = user.isEmailVerified

    // The user's ID, unique to the Firebase project. Do NOT use this value to
    // authenticate with your backend server, if you have one. Use
    // FirebaseUser.getToken() instead.
    val uid = user.uid
}

Próximas etapas

Explore os guias sobre como adicionar outros serviços de identidade e autenticação: