Excepción de argumento inválido en Flutter Firebase.
Estoy utilizando “firebase_database” 9.0.4 en una aplicación de Flutter, y en ocasiones aleatorias al ejecutar en un dispositivo físico, nos encontramos con el siguiente error.
MissingPluginException (No se encontró implementación para el método cancel en el canal userProfiles/-[DEFAULT]-null-DatabaseEventType.value-[]#1)
-[FIRDatabaseReference encodeSuccessEnvelope:]: selector no reconocido enviado a la instancia 0x16d1ec80
Terminando la aplicación debido a una excepción no capturada 'NSInvalidArgumentException', motivo: '-[FIRDatabaseReference encodeSuccessEnvelope:]: selector no reconocido enviado a la instancia 0x16d1ec80'
Primer informe de llamada a la pila:
(0x1ba83b3d 0x1ad0b067 0x1ba88fd1 0x1ba870c3 0x1b9afdc8 0x26665dd 0x22a1663 0x257bead 0x24da5ff 0x24dd3f7 0x1ba40637 0x1ba40339 0x1ba3fd37 0x1ba3ddd5 0x1b9911af 0x1b990fd1 0x1d13bb41 0x20d13a53 0xb11f7 0x1b17e4eb)
libc++abi.dylib: terminando con una excepción no capturada del tipo NSException
Esto parece no ocurrir cuando se ejecuta en el simulador ni en dispositivos Android.
davy.ai
Este error es una
MissingPluginException
, lo cual significa que el código está intentando acceder a una API de plataforma nativa que no está disponible. En este caso, parece que el complemento parafirebase_database
no está configurado correctamente para dispositivos iOS.Para solucionar este problema, puedes intentar los siguientes pasos:
Podfile
para incluir el frameworkFirebaseDatabase
:pod install
en tu terminal para instalar el nuevo framework.Asegúrate de haber inicializado Firebase con
Firebase.initializeApp()
antes de utilizar cualquier servicio de Firebase.Intenta limpiar la compilación de Xcode y reconstruir tu proyecto.
Si el problema persiste, es posible que necesites actualizar tu complemento
firebase_database
a una versión más reciente, ya que este error puede haber sido solucionado en una versión más nueva. Puedes hacer esto actualizando el número de versión en tu archivopubspec.yaml
, y ejecutandoflutter pub get
para actualizar tus dependencias.