Search code examples
javascriptreact-nativeexpoandroid-sqlite

How to use Sqlite with expo in React Native?


Does 'react-native-sqlite-storage' work with expo or it is compulsory to use expo-sqlite. I am trying to create an app which heavily depends on a database but for some reason 'react-native-sqlite-storage' shows me two error,

ERROR TypeError: Cannot convert null value to object, js engine: hermes

and

ERROR Invariant Violation: "main" has not been registered. This can happen if:

  • Metro (the local dev server) is run from the wrong folder. Check if Metro is running, stop it and restart it in the current project.
  • A module failed to load due to an error and AppRegistry.registerComponent wasn't called., js engine: hermes

Furthermore, there seems to be very little information regarding this error online and that's when I found out about expo-sqlite.


Solution

  • You can use expo-sqlite (https://docs.expo.dev/versions/latest/sdk/sqlite/)

    Using react-native-sqlite-storage seems to be not an good idea:

    1. You won’t be able to use react-native-sqlite-storage as it contains native code
    2. The project seems to be no longer maintained

    Technically you can use the module by building your own expo client or eject the app but you should not do that if it isn‘t really necessary.