Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

IOS app doesn't retain state after ionic/storage version(3.0.6) upgrade for ionic app

オープン
#282 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
30/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
angular, typescript
領域
mobile

調査の方向性

示されている IonicStorageModule.forRoot の driverOrder と getState() エントリーポイントを使用し、2.2.0 から 3.0.6 にアップグレードした後の iOS の永続化失敗を再現する。storage.create() のライフサイクルを以前の storage.ready() フローと比較し、複数の注入されたサービスから繰り返し呼び出される場合を検討する。ログイン状態がアプリの終了後も保持され、storage インスタンスのライフサイクルが理解できれば完了とする。

索引モデルが issue の本文から書いたものです。

説明

Hi team, I recently upgraded ionic storage from V2.2.0 to V3.0.6 in an ionic app. I'm facing IOS specific issue after the upgrade, IOS app doesn't retain login credentials after app kill which was retaining in ionic/storage(2.2.0) . Could you please help me to understand what I’m missing here ?

Code snippet after the upgrade:

import { IonicStorageModule } from '@ionic/storage-angular';
import { Drivers } from '@ionic/storage';
import * as CordovaSQLiteDriver from 'localforage-cordovasqlitedriver';
import { Storage } from '@ionic/storage-angular';

@NgModule({
  imports: [
    IonicStorageModule.forRoot({
      driverOrder: [CordovaSQLiteDriver._driver, Drivers.IndexedDB, Drivers.LocalStorage]
    })
  ]})

These are my env versions:

Ionic CLI                     : 6.20.6
Ionic Framework               : @ionic/angular 6.2.1
@angular-devkit/build-angular : 13.3.10
@angular-devkit/schematics    : 13.3.10
@angular/cli                  : 13.1.2
@ionic/angular-toolkit        : 6.1.0
@ionic/storage-angular        : 3.0.6
@ionic/angular                : 6.2.1

Code Before upgrade

getState(): Promise<{}> {
    return this.storage.ready().then(() => {
      return this.storage
        .get(this.syncKey)
        .then(s => s || {})
        .catch(err => {
           console.log(‘something wrong’)
          return Promise.resolve({});
        });
    });
  }



Code after upgrade:

getState(): Promise<{}> {
    return this.storage.create().then(() => {
      return this.storage
        .get(this.syncKey)
        .then(s => s || {})
        .catch(err => {
           console.log(‘something wrong’)
          return Promise.resolve({});
        });
    });
  }

Important: I’ve injected Storage service in multiple custom services, I replaced this.storage.ready() with this.storage.create() after the upgrade. Just curious to know if I’ve multiple occurrences of this.storage.ready() in a custom service and if I replace it with this.storage.create(), does it create a new instance every time getState() gets called ?

主要言語
TypeScript
スター
456
フォーク
97
PR マージ指標
30日以内にマージされた PR はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ionic-team/ionic-storage のほかの issue

ionic-team/ionic-storage の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。