Tengo una aplicación móvil Ionic 5/Angular 12/Capacitor 3 que estoy actualizando a Firebase 9 y Angular/Fire 7. Usando el comando de actualización Angular/Fire: ng update @angular/fire que usa la capa de compat de Firebase, la aplicación funciona bien en el navegador que ejecuta el ionic serve . A continuación, creé una compilación de producción para probar en mis teléfonos, ionic cap sync --prod , y la construí para mi Android y iPhone. La aplicación funciona perfectamente en Android, pero no en ninguno de mis iPhones, X y 6S. Al depurar esto un poco, se muestra que Firestore no responde, incluido ningún mensaje de error. Incluso construimos la aplicación y la empujamos a TestFlight y vemos la misma aplicación inoperable en iPhones.
Nota interesante, ejecutar ionic cap run ios -l --external --prod directamente en mi iPhoneX funciona.
La aplicación solo usa Firestore como parte de Firebase. La autenticación de usuario se realiza en un backend diferente y funciona con normalidad.
Dependencias pertinentes:
"@angular/...": "^12.0.1", "@angular/fire": "^7.1.0", "@capacitor/...": "^3.0.0", "@ionic/angular": "^5.6.7", "firebase": "^9.1.0",Importaciones de NgModule:
provideFirebaseApp(() => initializeApp(environment.firebase)), provideFirestore(() => { const firestore = getFirestore(); enableIndexedDbPersistence(firestore); return firestore; }),Estoy ejecutando Xcode 13.0 e iOS 15.0.1 en el iPhoneX y 14.6 en el iPhone6S.
Intenté soltar la capa de compatibilidad e ir directamente a la nueva API de Angular/Fire 7 para Firestore. Pero mismo resultado.
Incluso las sugerencias sobre lo que puedo intentar para obtener más información serían bienvenidas.
Eliminé por completo la capa de compatibilidad de Angular/Fire, convertí todas las llamadas de Firestore para usar el nuevo SDK modular. Cuando publiqué mi pregunta, solo eliminé parcialmente el SDK de compatibilidad.
Ahora, con la aplicación completamente fuera de la compatibilidad con Angular/Fire V7, funciona tanto en iOS como en Android.
No estoy seguro de por qué la capa de compatibilidad estaba causando problemas para las compilaciones de iOS.