Uncaught (в обещании): QuotaExceededError Ionic 3 - PullRequest
0 голосов
/ 07 июня 2018

Уже у StackOverflow есть этот тип вопроса, но ни один из ответов не является полезным для меня, Вот мои детали проблемы - Ошибка при сборке приложения на устройстве Android, его работанормально в эмуляторе и браузере, но когда я запускаю приложение на устройстве, я получаю эту ошибку, и мои данные не могут быть сохранены в хранилище.

vendor.js:1 ERROR Error: Uncaught (in promise): QuotaExceededError
    at c (polyfills.js:3)
    at polyfills.js:3
    at polyfills.js:3
    at t.invoke (polyfills.js:3)
    at Object.onInvoke (vendor.js:1)
    at t.invoke (polyfills.js:3)
    at r.run (polyfills.js:3)
    at polyfills.js:3
    at t.invokeTask (polyfills.js:3)
    at Object.onInvokeTask (vendor.js:1)

Вот мои зависимости

 "dependencies": {
"@angular/animations": "5.2.10",
"@angular/common": "5.2.10",
"@angular/compiler": "5.2.10",
"@angular/compiler-cli": "5.2.10",
"@angular/core": "5.2.10",
"@angular/forms": "5.2.10",
"@angular/http": "5.2.10",
"@angular/platform-browser": "5.2.10",
"@angular/platform-browser-dynamic": "5.2.10",
"@ionic-native/camera": "^4.7.0",
"@ionic-native/core": "4.7.0",
"@ionic-native/network": "^4.7.0",
"@ionic-native/onesignal": "^4.7.0",
"@ionic-native/splash-screen": "4.7.0",
"@ionic-native/status-bar": "4.7.0",
"@ionic-native/transfer": "^3.14.0",
"@ionic/pro": "1.0.20",
"@ionic/storage": "^2.1.3",
"cordova-android": "^7.0.0",
"cordova-ios": "4.5.4",
"cordova-plugin-camera": "^4.0.3",
"cordova-plugin-device": "^2.0.2",
"cordova-plugin-ionic-keyboard": "^2.0.5",
"cordova-plugin-ionic-webview": "^1.2.1",
"cordova-plugin-network-information": "^2.0.1",
"cordova-plugin-splashscreen": "^5.0.2",
"cordova-plugin-whitelist": "^1.3.3",
"cordova-sqlite-storage": "^2.3.2",
"emulator": "0.1.0",
"ionic-angular": "3.9.2",
"ionic-cache": "^3.0.1",
"ionicons": "3.0.0",
"onesignal-cordova-plugin": "^2.4.1",
"rxjs": "5.5.10",
"sw-toolbox": "3.6.0",
"zone.js": "0.8.26"
}

вот мой массив app.module.ts import

imports: [
BrowserModule,
LoginPageModule,
SignupPageModule,
DashboardPageModule,
TabPageModule,
IonicModule.forRoot(MyApp, {
  tabsPlacement: 'bottom',
  platforms: {
    ios: {
      tabsPlacement: 'bottom'
    }
  }
}),
CacheModule.forRoot(),
IonicStorageModule.forRoot({
  name: '__mydb',
  driverOrder: ['indexeddb', 'sqlite', 'websql']
}),
HttpClientModule,
],

Я хочу сохранить данные при успешном входе пользователя, вот мой код входа пользователя и сохранить пользователя в хранилище.

this.authService.userLogin(this.user)
    .subscribe(
      response => {
        console.log(response);
        console.log(typeof response.status);
        if (response.status === "ok") {
          spinner.dismiss();
          console.log(response.status);
          this.storage.ready().then(() => {
            this.storage.set('user',response);
          });

          this.navCtrl.setRoot(DashboardPage);
        } else {
          spinner.dismiss();
          console.log(response.status);
          let alert = this.alertCtrl.create({
            title: response.status,
            subTitle: response.msg,
            buttons: ['Dismiss']
          });
          alert.present()
        }
      })

Правильное направление будет высоко оценено.Спасибо

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Я попробовал какое-то решение, здесь я упоминаю одно из них:

IonicStorageModule.forRoot({
  name: ‘__mydb’,
  driverOrder: [‘sqlite’, ‘websql’, ‘indexeddb’]
})

Но оно не работает для меня.

После этого я просто решаю его, используя ionic nativeхранение .

Отлично работает в android и ios.

0 голосов
/ 14 июня 2018

В качестве альтернативы, вы можете попробовать добавить эту строку в app.module.ts:

IonicStorageModule.forRoot({
  name: ‘__mydb’,
  driverOrder: [‘sqlite’, ‘websql’, ‘indexeddb’]
})
...