@@ -4,16 +4,27 @@ class CoreStoreSembastImp implements CoreStore {
4
4
CoreStoreSembastImp ._internal (this ._store);
5
5
static CoreStoreSembastImp _instance;
6
6
7
- static Future <CoreStore > getInstance ({ DatabaseFactory factory , String password = 'flutter_sdk' }) async {
8
-
7
+ static Future <CoreStore > getInstance (
8
+ { DatabaseFactory factory , String password = 'flutter_sdk' }) async {
9
9
if (_instance == null ) {
10
10
factory ?? = databaseFactoryIo;
11
11
final SembastCodec codec = getXXTeaSembastCodec (password: password);
12
- String dbDirectory = '' ;
13
- if (Platform .isIOS || Platform .isAndroid)
14
- dbDirectory = (await getApplicationDocumentsDirectory ()).path;
15
- final String dbPath = path.join ('$dbDirectory /parse' , 'parse.db' );
16
- final Database db = await factory .openDatabase (dbPath, codec: codec);
12
+ String dbPath = '' ;
13
+ Database db;
14
+ if (Platform .isIOS || Platform .isAndroid) {
15
+ final String dbDirectory =
16
+ (await getApplicationDocumentsDirectory ()).path;
17
+ dbPath = path.join ('$dbDirectory /parse' , 'parse.db' );
18
+ } else {
19
+ dbPath = path.join ('parse' , 'parse.db' );
20
+ }
21
+ try {
22
+ db = await factory .openDatabase (dbPath, codec: codec);
23
+ } catch (e) {
24
+ print (e);
25
+ await factory .deleteDatabase (dbPath);
26
+ db = await factory .openDatabase (dbPath, codec: codec);
27
+ }
17
28
_instance = CoreStoreSembastImp ._internal (db);
18
29
}
19
30
@@ -96,4 +107,4 @@ class CoreStoreSembastImp implements CoreStore {
96
107
Future <void > setStringList (String key, List <String > values) {
97
108
return _store.put (values, key);
98
109
}
99
- }
110
+ }
0 commit comments