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 para Login, 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 o cadastro e para o sair.

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 nome emailTextField.
  • 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 para action.

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 arquivo ViewController.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 classe ViewController.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étodo viewDidLoad 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 de User para representar o usuário. No campo de baixo do nome chamado Codegen altere para Manual/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 para User.
  • Crie um novo arquivo swift com o nome CoreDataManager que é do tipo NSObject 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á!

--

--