Validação de Login via Firebase
Por que é sempre bom verificar isso
Neste artigo, vamos aprender a fazer uma validação de login com Firebase através da linguagem Swift 3. Começaremos fazendo o design do login e depois faremos a lógica de funcionamento. Este tutorial ensina a fazer um sistema de login simples, apenas para aprendizado. Você pode incrementar o sistema de login e adaptá-lo ao seu projeto.
Para isso, precisamos seguir alguns passos simples:
- É preciso ter um projeto no Xcode — inicie o Xcode e clique em “Create a new Xcode project”.
- Clique em “Single View Application” e depois em “next”.
- No campo “Product name”, adicione um nome ao projeto e depois clique em “next”.
Pronto, agora que já temos um projeto, vamos trabalhar na construção do storyboard de login.
- No arquivo
Main.storyboard
, abra a aba “utilities” e na parte inferior da aba procure por “Label”. Adicione uma Label ao storyboard e altere o nome dela paraLogin
, ela irá representar o título da página. - Adicione também um Text Field e altere o placeholder dele para
email
. - Adicione outro Text Field, mas agora ele será usado para a senha. Assim, é necessário marcar o checkbox de “Secure Text Entry” localizado na aba de utilities.
- Agora vamos fazer um botão de login, um de cadastro e um de sair. Adicione um Button ao storyboard e o renomeie para
Login.
Faça o mesmo para ocadastro
e para osair
.
Ao final destes passos o seu storyboard deve ficar parecido com este:
Execute o projeto para ver se está funcionando corretamente.
Agora vamos ligar os campos que adicionamos no storyboard ao código do projeto porque precisamos utilizá-los na lógica do projeto.
- Abra o Assistant Editor, ligue o text field de usuário clicando nele com o control pressionado e levando ele até o arquivo
ViewController.swift
. Solte logo no começo da classe, adicione um nome que o referencie e clicar em “Connect”. Eu utilizei o nomeemailTextField
. - Faça o mesmo para o text field de senha. Eu utilizei o nome
passwordTextField
. - Faça o mesmo para o botão de login, de cadastro e de saída, mudando o campo connection de
outlet
paraaction
.
Feito isso poderemos iniciar o desenvolvimento da nossa lógica de projeto.
Primeiramente iremos utilizar o Firebase para o desenvolvimento do nosso projeto, posteriormente faremos as mesmas etapas utilizando CoreData.
- Para configurar o Firebase no seu projeto siga as instruções que se encontram nesse endereço URL: https://firebase.google.com/docs/ios/setup?hl=pt-br
- É necessário adicionar os serviços de Database e Auth no Podfile do projeto.
- Feito isso, crie um projeto no site oficial do Firebase.
- Precisamos habilitar o sistema de login, então você deve ir em Authentication e na aba Método de Login ativar o sistema de login por email e senha.
- Voltando ao projeto no Xcode, importe o
FirebaseAuth
no arquivoViewController.swift
. - Agora implemente a lógica do login e do cadastro. Na action de Cadastro você deve adicionar este código:
Este código irá fazer o registro do email e da senha. O termo emailTextField
se refere a variável que foi ligada do storyboard para o código.
- Na action de Login você deve adicionar este código:
Este código irá fazer a autenticação do login.
- Na action de Sair você deve adicionar este código:
Este código irá deslogar o usuario do sistema.
- Agora vamos realmente salvar o usuário no banco de dados, importe o
FirebaseDatabase
na classeViewController.swift
e crie uma referência do Firebase. - Dentro da classe controller, crie uma variável global do tipo
DatabaseReference
e atribua a ela no métodoviewDidLoad
este código:
Database.database().reference()
- Na action de cadastro adicione o código abaixo logo após o usuário ser cadastrado:
Feito isso, o sistema de login com Firebase está concluído, agora vamos fazer o mesmo projeto mas utilizando CoreData.
Crie um novo projeto single view application, porém, devemos marcar o checkbox para utilizar Core Data. Feito isso, proceda com o mesmo estilo de storyboard da aplicação anterior.
Note que agora o projeto possui um arquivo do tipo xcdatamodeld
, esse arquivo possibilita a criação de entidades do nosso banco de dados.
- Acesse o arquivo
xcdatamodeld
e clique em “Add Entity” para criar uma entidade, chame-a deUser
para representar o usuário. No campo de baixo do nome chamadoCodegen
altere paraManual/None
(Isso fará diferença nos próximos passos). - Adicione à entidade os atributos email e senha, que são do tipo String.
- Gere uma classe que representa a entidade User: na barra superior do Xcode clique em
Editor > Create NSManagedObject Subclass > Next > Next > Create
.
Devem ser criadas 2 classes automaticamente no seu projeto, uma chamada User+CoreDataClass.swift
e outra chamada User+CoreDataProperties.swift
.
- Renomeie a classe
User+CoreDataClass
paraUser
. - Crie um novo arquivo swift com o nome
CoreDataManager
que é do tipoNSObject
e importe CoreData. Ele conterá os principais métodos para implementação do banco de dados.
Adicione este código à classe:
- Agora vamos implementar a lógica do login e do cadastro. Na action de Cadastro adicione este código:
- Na action de Login adicione este código:
E ai está!