Como usar o Firebase no Flutter para Autenticação e Banco de Dados

Поделиться
HTML-код
  • Опубликовано: 13 дек 2024

Комментарии • 60

  • @glauciosales6414
    @glauciosales6414 3 года назад +8

    Parabéns para a UTFPR pelo conteúdo muito bem feito e colocado, aluno da UFSM por aqui

  • @andreoliveira8122
    @andreoliveira8122 3 года назад +1

    que aula incrível mais uma forma de cadastro para o portfólio.
    Obrigado por disponibilizar um conteúdo incrível e ainda gratuito

  • @byfelipers
    @byfelipers 3 года назад

    Espetacular!! Venho acompanhando vários cursos e vídeos de Flutter, e me decepciono com a complexidade, métodos estranhos, pouca explicação.. Aqui você foi perfeito e didático, muito obrigado pelo conteúdo!!

    • @drantunes
      @drantunes  3 года назад +1

      Muito obrigado Felipe. Com os feedbacks vamos melhorando. Grande abraço!!!!

  • @carlosdias1139
    @carlosdias1139 3 года назад +2

    SHOW !!!

  • @scarapa
    @scarapa 7 месяцев назад

    muito bom o video, mas ficou devendo coisas, pq o final cortou

  • @jd-code
    @jd-code 3 года назад +1

    Boa noite amigo, me ajudou muito. Gostaria de saber como botar olho na senha para visualizar. Nesse StatelessWidget não consigo fazer isso :(

    • @drantunes
      @drantunes  3 года назад

      Olá Jeferson, para usar em uma StatelessWidget você pode utilizar um GetController e utilizar um observable para controlar a exibição da senha. Caso não use o GetX, você pode converter a widget para Stateful e utilizar uma variável boleana para controlar se exibe ou não a senha. Ao clicar no IconButton, você pode alterar esta propriedade com o setState (por exemplo).

  • @leozynho0gonzalez
    @leozynho0gonzalez 2 года назад

    opa, estou acompanhando o curso usando o flutter 3.0, no minuto 15:00, para atualizar os textos ao clicar em cadastrar deixei assim dentro do onInit - **titulo.value = visible == true ? 'Bem vindo!' : 'Crie sua Conta';** só funcionou usando o visible == true, teria outra solução para esse caso?

    • @drantunes
      @drantunes  2 года назад

      Pode fazer assim mesmo, sem problemas 😀

  • @alexalmeida5955
    @alexalmeida5955 2 года назад

    Excelente aula! Gostaria de saber se existe uma forma de impedir dois celulares de logar com o mesmo e-mail e senha, simultaneamente.

    • @drantunes
      @drantunes  2 года назад +1

      Você deve verificar isso no lado do servidor, criando uma regra para permitir 1 login ativo por vez 👍

  • @clauciowillian
    @clauciowillian 3 года назад +1

    Para adicionar no o banco de dados como por exemplo a sua aplicação aí , que tem o time e dentro do time tem vários títulos , como ficaria pada eu adicionar na coleção ? Estou com essa dúvida para adicionar um time a partir de um textfield e dentro dele adicionar vários títulos

    • @drantunes
      @drantunes  3 года назад

      Olá Claucio, você pode fazer de duas formas: a) você pode utilizar uma subcollection em times, chamada titulos (você poderia adicionar usando ...firestore.collection('times/$timeId/titulos').add().... b) outra forma é adicionar uma outra coleção na raiz do projeto chamada 'titulos' e adicionar um campo chamado timeId para você conseguir filtrar os titulos de um time pelo timeId. A segunda tem vantagem caso você precise acessar uma lista de todos os títulos, independente do time...

    • @clauciowillian
      @clauciowillian 3 года назад

      @@drantunes fiz isso e como posso para cada usuário logado ele ter seus próprios times ?

  • @luisrodrigues1610
    @luisrodrigues1610 11 месяцев назад

    você tem curso na udemy se tiver deixa o link aqui por favor sobre flutter

    • @drantunes
      @drantunes  11 месяцев назад

      Sem curso na Udemy

  • @washinerdev4355
    @washinerdev4355 3 года назад +1

    como coloca aquele sinal de diferente nao entendi onde ta aquele sinal no teclaro eu so conhece != ele parece dois igual com risco no meio

    • @drantunes
      @drantunes  3 года назад +1

      É o operador !== (No meu editor eu utilizo a fonte Fira Code com suporte a ligatures, que convertem o === e o !== para os símbolos que você viu no vídeo).

    • @washinerdev4355
      @washinerdev4355 3 года назад

      @@drantunes legal obrigado ja tinha visto em outra video aula e fiquei super confuso agora aprendi rs valeuuu vc tem algum curso que segue uma linhagem de iniciante e vai escalonando?

  • @andreoliveira8122
    @andreoliveira8122 3 года назад +1

    Como arruma esse erro ? The argument type 'Stream' can't be assigned to the parameter type 'Stream'.

    • @andreoliveira8122
      @andreoliveira8122 3 года назад

      minuto 28 da aula

    • @andreoliveira8122
      @andreoliveira8122 3 года назад

      tem hora que esse null safe só atrapalha

    • @andreoliveira8122
      @andreoliveira8122 3 года назад +2

      dando uma pesquisada achei a solução.
      segue o codigo abaixo:
      ```
      class AuthService extends GetxController {
      FirebaseAuth _auth = FirebaseAuth.instance;
      Rxn _firebaseUser = Rxn();
      var userIsAuthenticad = false.obs;
      @override
      void onInit() {
      super.onInit();
      _firebaseUser.bindStream(_auth.authStateChanges());
      ever(_firebaseUser, (User? user) {
      if(user != null){
      userIsAuthenticad.value = true;
      }else{
      userIsAuthenticad.value = false;
      }
      });
      }
      }
      ```

    • @drantunes
      @drantunes  3 года назад

      Isso é um problema relacionado ao null safety das novas versões do Flutter. Você pode marcar a variável com ? para informar ao compilador que ela pode ser nula, ou inicializar ela antes ou mesmo marcar a variável como late e então fazer a inicialização tardia.

    • @drantunes
      @drantunes  3 года назад +1

      Isso. Infelizmente esta aula foi gravada sem o Null Safety. As novas aulas já estão todas com Null Safety. No caso do Firebase que retorna o null como um resultado é necessário explicitar ao Flutter que a variável pode ser nula.

  • @carlosalbertonaves
    @carlosalbertonaves Год назад

    Tem continuacao? De repente acabou. Muito boa aula

    • @drantunes
      @drantunes  Год назад +1

      Sim, só continuar a playlist Flutter na Prática!

    • @carlosalbertonaves
      @carlosalbertonaves Год назад

      Obrigado. Vou maratonar hehe

  • @alerrandroborges3058
    @alerrandroborges3058 Год назад

    estou com um erro no meu
    showSnack('Erro no login!', e.message);
    Type: dynamic
    The getter 'message' isn't defined for the type 'Object'.
    Try importing the library that defines 'message', correcting the name to the name of an existing getter, or defining a getter or field named 'message'.

    • @drantunes
      @drantunes  Год назад +1

      Passa só o e.toString() no método, pois está dando problema de conversão de tipo.

    • @alerrandroborges3058
      @alerrandroborges3058 Год назад

      @@drantunes obrigado

    • @alerrandroborges3058
      @alerrandroborges3058 Год назад

      ​@@drantunes me surgiu um novo error.
      1 positional argument expected by 'Rx.new', but 0 found.
      Try adding the missing argument.
      nessa linha
      final Rx _firebaseUser = Rx();

  • @geovannicadorin5742
    @geovannicadorin5742 3 года назад +1

    Professor teria alguma maneira de forçar o disconnect de algum usuário? Vou no console do firebase e bloqueio por lá porém se o usuário já estiver logado ele continua tendo acesso.

    • @drantunes
      @drantunes  3 года назад +1

      Você pode criar uma Cloud Function usando Node.js, por exemplo, para usar o Admin SDK. Com o Admin SDK você consegue gerenciar a sessão de cada usuário por meio do UID. Para "forçar o sign out" remotamente, você poderia usar o método revokeRefreshTokens(UID). Acredito que isso resolveria o seu problema.
      firebase.google.com/docs/auth/admin/manage-sessions#revoke_refresh_tokens

    • @geovannicadorin5742
      @geovannicadorin5742 3 года назад

      @@drantunes mt obrigado vou testar aqui

  • @Libertario_store
    @Libertario_store Год назад

    Opa. Esse vídeo ainda é válido, já passou por modificações?

    • @drantunes
      @drantunes  Год назад +1

      Sim, apenas a configuração que agora é automática, tem um vídeo atualizado na playlist!

  • @alejandrecardoso
    @alejandrecardoso 2 года назад

    estou compilando o projeto e da essa mensagem: Build failed due to use of deprecated Android v1 embedding. , como faço para resolver

    • @drantunes
      @drantunes  2 года назад +1

      Olá Alexandre, tem o passo a passo do upgrade aqui: github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects

    • @alejandrecardoso
      @alejandrecardoso 2 года назад

      @@drantunes obrigado por vc me responder, grato.

    • @drantunes
      @drantunes  2 года назад +1

      @@alejandrecardoso 👍👊👊

    • @alejandrecardoso
      @alejandrecardoso 2 года назад

      Gostaria de saber se vc tem algum curso dw futter web

    • @drantunes
      @drantunes  2 года назад +1

      @@alejandrecardoso Ainda não fiz conteúdo sobre Flutter Web...

  • @clauciowillian
    @clauciowillian 3 года назад

    Como deixou as regras do Firestone ?

    • @drantunes
      @drantunes  3 года назад

      Neste exemplo deixei sem regras. Neste caso, no mínimo, seria importante que a gravação fosse realizada somente pelo usuário logado.

  • @jd-code
    @jd-code 3 года назад

    O meu app ficar atualizando em cima na barra direto.

    • @drantunes
      @drantunes  3 года назад

      Como o aplicativo está usando uma API externa é preciso configurar as chaves de API no serviço api-futebol.com.br e alterar o times_repository.dart

  • @TheFernandojrcoroa
    @TheFernandojrcoroa 3 года назад

    os links estão indisponíveis

    • @drantunes
      @drantunes  3 года назад

      Vou corrigir Fernando, obrigado por avisar 👍

  • @2986722
    @2986722 Год назад

    É impressão minha ou ele ta falando atrasado do vídeo? >.