Secure Storage - Troubleshooting
General troubleshooting
To verify the plugin is correctly installed, there are some test methods available on the plugin:
// Verify that both the JavaScript and native part of this plugin
// are installed in your Ionic app
await this.sqlite.echoTest();
// Verify basic database access operations including opening a database
// Prints "OPEN database: OK"
await this.sqlite.selfTest();
Database location or iosDatabaseLocation setting is now mandatory in openDatabase call.
This message indicates that location
or iosDatabaseLocation
was not provided in the options for create
or openDatabase
, which is now required. A value of 'default'
is appropriate for most use cases.
Unable to open database file
Symptom: create
or openDatabase
fails with a message indicating the engine was unable to open the database file or that the database file is not a valid database.
Diagnosis: The usual culprit here is that an unencrypted database was created first, and then a key
was specified later (to enable encryption), but by then the original database already exists but can't be read since it's not encrypted.
Solution: The solution is to change the name
of the database file whenever switching between a database used with and without encryption. Additionally, uninstalling the app will delete the database.
App is rejected for storing data in iCloud
The location
option in create
can be used to specify where the database file is stored on device. The value of default
will store the database file in a non-iCloud backed up location. This is recommended for most apps, though iCloud backup could be legitimate for some use cases but that is app-specific.