1
resposta

[Bug] Flutter Firebase - Problema no iOS

Estou fazendo o curso de Firebase No Flutter da Alura. Tudo ok até o momento. Porém depois de configurar tudo no alura+ específico do curso, o professor esta usando emulador Android, mas eu estou usando emulador iOS. Ocorre que quando tentei rodar o App após instalar as dependências do Firebase, o app não rodava. No console Run, ele ficava parado eternamente em "installing pods....." e não saia disso por nada.

Eu pesquisei na internet, tentei diversas coisas, deletei a pasta do iOS "pods" e dei um pod install. Eu fiz diversas coisas que nem me lembro ao certo, e uma hora acabou funcionando. Agora consigo rodar o app no flutter emulando um iPhone, e funciona integrado no Firebase.

o Problema agora é que no console Run, ele fica eternamente escrevendo "Syincing files to iphoine device......" O app roda, as requisições funcionam, mas enquanto no Android nesse mesmo console Run aparece diversos comandos que o Firebase está fazendo, no iOS não aparece nada...

Minha dúvida basicamente é: Como usar o Flutter com Firebase no iOS, de maneira que funcione, sem esse bug que descrevi acima (installing pods...)

Como resolver esse Bug do "Syncing files.." e poder de fato ver o console funcionando normalmente.

Estou usando um Macbook M1, com intellij.

Importante. O erro so ocorre no projeto que instalei as dependencias do firebase. Outros projetos funcionam normal. O que leva a crer que o erro é realmente com o firebase X iOS - iPhone

1 resposta

Oi Bruno, tudo bem?

Desculpe a demora em retornar.

Pelo que entendi, você seguiu as instruções do curso e configurou corretamente o Firebase no Flutter. No entanto, ao tentar rodar o app no emulador iOS, você enfrentou alguns obstáculos. O console Run ficou parado em "installing pods....." por um longo período de tempo e, posteriormente, você está vendo a mensagem "Syncing files to iPhone device....." sem ver os comandos do Firebase sendo exibidos.

O problema que você está enfrentando está relacionado ao gerenciador de dependências CocoaPods, que é usado para instalar e gerenciar as dependências do projeto no iOS. Esse problema é comum ao configurar o Firebase no Flutter para o emulador iOS e pode ser resolvido com alguns passos.

A primeira solução que você já tentou foi deletar a pasta "pods" do seu projeto e executar o comando "pod install". Essa é uma ação válida, pois garante que as dependências do Firebase sejam instaladas corretamente. No entanto, às vezes, pode haver conflitos ou problemas durante a instalação, especialmente em ambientes diferentes, como o Macbook M1.

Uma solução alternativa é realizar a instalação manual das dependências do Firebase no projeto. Para fazer isso, siga os passos abaixo:

  1. Abra o terminal e navegue até o diretório raiz do seu projeto Flutter.

  2. Acesse a pasta do seu projeto iOS usando o comando cd ios.

  3. Verifique se você tem o arquivo "Podfile" presente na pasta iOS. Se não tiver, crie-o executando o comando pod init.

  4. Abra o arquivo "Podfile" usando um editor de texto e adicione as seguintes linhas antes do final do arquivo:

    platform :ios, '11.0'
    use_frameworks!
    
    target 'Runner' do
      use_modular_headers!
      pod 'Firebase/Core'
      pod 'Firebase/Analytics'
      # Adicione outros pods do Firebase que você estiver usando
    
      # Adicione pods de outras dependências do seu projeto, se houver
    end
    

    Certifique-se de adicionar os pods específicos do Firebase que você está usando, como o "Firebase/Auth" para autenticação, "Firebase/Firestore" para o Firestore, etc. Se estiver usando outras dependências no seu projeto, como bibliotecas de terceiros, adicione-as também.

  5. Salve o arquivo "Podfile" e volte para o terminal.

  6. Execute o comando pod install para instalar as dependências manualmente.

Aguarde até que o CocoaPods termine de baixar e configurar as dependências. Isso pode levar algum tempo, dependendo da velocidade da sua conexão com a internet.

Após a instalação ser concluída, volte ao seu projeto no IntelliJ e tente rodar o app novamente no emulador iOS. Dessa vez, o console Run não deve ficar preso em "Syncing files to iPhone device....." e você deverá ver os comandos do Firebase sendo exibidos normalmente.

É importante ressaltar que, ao utilizar o emulador iOS, pode haver algumas diferenças em relação ao comportamento do Firebase em comparação com o emulador Android. Algumas informações podem não ser exibidas no console Run para o iOS, mas isso não significa necessariamente que algo está errado. Você pode verificar se as integrações estão funcionando corretamente testando as funcionalidades do Firebase no seu app, como autenticação, armazenamento, banco de dados, entre outros.

Espero que essas orientações sejam úteis para resolver o problema que você está enfrentando.

Um abraço.