flutter: no se encontró ninguna implementación para el método getDatabasesPath en el canal com.tekartik.sqflite

CorePress2024-01-25  11

Tengo una aplicación Flutter, funciona bien en dispositivos móviles, estoy intentando tener la misma aplicación en la web. Estoy usando Moor para sincronizar y almacenar datos localmente en caso de que no haya Internet y cuando vuelve Internet se sincroniza con el servidor. Ahora, cuando intento ejecutar la misma aplicación en la web, Moor se queja

Error: MissingPluginException(No implementation found for method getDatabasesPath on channel com.tekartik.sqflite)

el complemento dice que es compatible con la web, desde aquí. No encuentro mucha información sobre cómo resolver esto. ¿Cómo puedo configurar Moor para que se ejecute en la web sin ese error?

¿Intentaste reiniciar tu aplicación?

– andrej

28 de marzo de 2021 a las 6:23

@Andrej sí, no hice nada

Arriff

28 de marzo de 2021 a las 6:46

¿Lo resolviste?

- Jagadish

25 de mayo de 2021 a las 8:07



------------------------------------

El complemento que estás utilizando está construido sobresqlite, que en sí no es compatible con la web, y en la parte inferior de la página del complemento Moor también se menciona que el soporte web ahora es experimental.

El complemento Sqlite aún no es compatible con la web, pero sí es compatible con Android, iOS y Macos. Sugeriría a cualquiera que enfrente este problema que use otras bases de datos o bases de datos basadas en la nube en lugar de sqlite si está usando flutter web. Espero que el complemento también sea compatible con la web.

Actualización: Puedes probar este ejemplo para usar sqlite en la web, podría funcionar.

3

De este ejemplo sqlitFunciona bien desde la web, solo tienes que ser creativo, funcionó para mí usando ese ejemplo, por lo que tu respuesta no es tan correcta

Arriff

28 de mayo de 2021 a las 15:04

¡Actualizada la respuesta!

- Jagadish

29 de mayo de 2021 a las 6:01

Tienes que usar bloc para una gran cantidad de códigoque funcione

Arriff

2 de junio de 2021 a las 10:30



------------------------------------

Obtuve el mismo error cuando ejecuté la aplicación web por primera vez. Si sigue una arquitectura limpia, podrá proporcionar fácilmente la "base de datos" instancia.

Esto es lo que hice:

Crear una interfaz de almacén de datos local Compruebe si la web utiliza kIsWeb Si kIsWeb es cierto, devuelvo un caché en la memoria; de lo contrario, solo devuelvo la base de datos de la aplicación móvil que ya implementó para sus aplicaciones de Android e iOS. respondido

20 de octubre de 2021 a las 19:14

usuario3193413

usuario3193413

585

7

7 insignias de plata

10

10 insignias de bronce

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare