Primeiros passos com o Firebase Authentication no Android

Conectar seu app ao Firebase

  1. Instale o SDK do Firebase.
  2. No Console do Firebase, adicione seu app ao projeto do Firebase.

Adicionar o Firebase Authentication ao seu app

Adicione a dependência do Authentication ao seu arquivo build.gradle de nível de aplicativo:

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

Para usar um provedor de autenticação, você precisa 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
    Android

    private FirebaseAuth mAuth;

    Kotlin
    Android

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

    Java
    Android

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

    Kotlin
    Android

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

    Java
    Android

    @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
    Android

    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
Android

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
Android

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 os respectivos e-mails e senhas, 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 login do usuário com o método signInWithEmailAndPassword.

Java
Android

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
Android

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 login dos usuários com e-mail e senha, 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
Android

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
Android

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
}

Opcional: configurar o ProGuard

Ao usar o Firebase Authentication no seu app com o ProGuard, adicione as sinalizações a seguir ao seu arquivo proguard-rules.pro para garantir que seu app funcione corretamente:

    -keepattributes Signature
    -keepattributes *Annotation*

Próximas etapas

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

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.