- 0. Curso Flutter + .NET 8 + Novita AI: índice completo
- 1. Arquitectura Flutter + backend .NET 8 con Novita AI
- 2. Configurar entorno .NET 8 + Flutter + Firebase + Novita AI
- 3. Backend .NET 8: Auth Firebase y esqueleto API
- 4. Integrar Novita AI: text-to-image e image-to-image en .NET 8
- 5. Webhook Novita y procesamiento asíncrono
- 6. Firestore, modelos y endpoints de dominio
- 7. Flutter: login Google y configuración API
- 8. Flutter: subida de imagen y creación de invitaciones
- 9. Listado, estado y detalle de invitaciones
- 10. ControlNet completo en backend y Flutter
- 11. LLM con Novita: img2prompt y adaptación de prompts
- 12. Despliegue, checklist final y publicación WordPress
- Bonus 01: vídeo con FFmpeg y flujo opcional
- Bonus 02: importador de modelos Novita a Firestore
- Bonus 03: Prompt Generator y administración básica
Actualizado: 20 de febrero de 2026.
Ahora conectamos la app Flutter con Firebase Auth y backend autenticado.
Prerrequisitos
- Tener clonado o disponible
codigo/de esta serie. - Contar con Firebase y Novita configurados para pruebas.
- Haber completado el capítulo anterior del curso.
Paso 1: pantalla de login
Archivo:
codigo/app/lib/screens/login_screen.dart
Se usa:
GoogleSignIn()FirebaseAuth.instance.signInWithCredential(...)
Paso 2: base URL del backend
Archivo:
codigo/app/lib/configUrl.dart
Se lee con:
const String.fromEnvironment('API_BASE_URL')
Paso 3: token al backend
Archivo:
codigo/app/lib/services/api_service.dart
Método _token() obtiene ID token y cada request agrega:
Authorization: Bearer <token>
Paso 4: validación básica
cd codigo/app
rg -n "GoogleSignIn|getIdToken|Authorization" lib -S
Paso 5: ejecución
flutter run --dart-define=API_BASE_URL=http://localhost:56449/api
Troubleshooting
- Login cancela siempre: revisa SHA en Firebase para Android.
- 401 desde backend: token no se está adjuntando.
- Navegación vuelve a login: token expirado o usuario deslogueado.
FAQ corta
¿La app guarda token manualmente?
No, se obtiene desde FirebaseAuth cuando hace falta.
¿Se puede cambiar backend por entorno?
Sí, con --dart-define=API_BASE_URL=....
¿Qué pasa si backend responde 401?
ApiService redirige al login.
Fuente verificada
- Código del curso:
codigo/app/lib/screens/login_screen.dartcodigo/app/lib/services/api_service.dartcodigo/app/lib/configUrl.dart
- Documentación oficial:
Share this content: