Loading repository data…
Loading repository data…
davigomesflorencio / repository
Aplicativo de demonstração Ionic + Angular + Capacitor com integração ao Firebase (Firestore).
Aplicativo de demonstração Ionic + Angular + Capacitor com integração ao Firebase (Firestore).
Resumo
Pré-requisitos
npm i -g @ionic/cli@capacitor/cli)sudo gem install cocoapods) — Opcional se usar SPM (Swift Package Manager), mas recomendado para plugins legados.Instalação local
npm installfirebase com suas credenciais do projeto Firebase.Rodando em desenvolvimento (web)
ionic serve — roda no navegadoriOS (Configuração e Build)
O projeto está configurado para usar Swift Package Manager (SPM) como gerenciador de dependências nativas (Capacitor 8+).
npx cap sync iosnpx cap open iosInfo.plist já contém as chaves necessárias para geolocalização:
NSLocationAlwaysUsageDescriptionNSLocationWhenInUseUsageDescriptionnpx cap run iosAndroid (Configuração e Build)
npx cap sync androidnpx cap open androidnpx cap run android ou via Android Studio.Build (produção)
npm run build (gera www) && npx cap sync android && então build via Android Studio / XcodeFirebase / Firestore
@angular/fire + Firebase modular (v9+). O módulo é inicializado em src/app/app.module.ts.src/app/services/desafio.ts — usa injeção do Firestore e funções collection, addDoc, updateDoc.Configurações Capacitor (CORS / WebView)
net::ERR_BLOCKED_BY_CLIENT), atualize capacitor.config.ts adicionando hosts do Firebase em server.allowNavigation e sincronize: npx cap sync.Problemas comuns e correções aplicadas
ion-app não é conhecido: adicione CUSTOM_ELEMENTS_SCHEMA em src/app/app.module.ts (já aplicado).Can't bind to 'formGroup': importe ReactiveFormsModule no módulo da página (ex.: src/app/home/home.module.ts).TS4111 (index signature): no template use fields['nome'].errors['required'] em vez de fields.nome.errors.required.ToastController incorreta: use import { ToastController } from '@ionic/angular';.Firebase API called outside injection context: certifique-se de definir provideFirebaseApp e provideFirestore em imports de AppModule e usar injeção (ou inject()), como feito em src/app/services/desafio.ts.Unsupported class file major version 69): ajuste sua JDK para uma versão suportada pelo Gradle ou defina org.gradle.java.home em android/gradle.properties apontando para a JDK desejada.Comandos úteis
npm installionic servenpx cap syncnpx cap run androidnpx cap open androidnpm run buildnpm testContinuação / Contribuição
Gerado automaticamente — instruções e correções básicas incluídas para facilitar o build e execução do app.