web-dev-qa-db-ja.com

Flutterを使用してローカルストレージに保存するにはどうすればよいですか?

Androidでは、セッション間で保持したい情報がある場合、SharedPreferencesを使用するか、SQLiteデータベースを作成するか、デバイスにファイルを書き込んで後で読み込むことができます。

Flutterを使用してこのようなデータを保存および復元する方法はありますか?または、 services example のようにAndroidおよびiOSのデバイス固有のコードを記述する必要がありますか?

57
Reagankm

いくつかのオプションがあります。

75
Seth Ladd

後で参照したい小さな値を保存したい場合。次に、shared_preferencesを使用してデータをキー値データとして保存する必要があります

ただし、大きなデータを保存する場合は、SQLITEを使用する必要があります

ただし、オフラインで利用可能なfirebaseデータベースはいつでも使用できます

ローカルストレージについて話しているので、いつでもファイルをディスクに読み書きできます

その他の解決策:

31
Raouf Rahiche

Flutterの公式プラグインから共有設定を使用できます。 https://github.com/flutter/plugins/tree/master/packages/shared_preferences

AndroidではShared Preferences、iOSではNSUserDefaultsを使用します。

10
Furkan Tektas

APIトークンやログインデータ(パスワードではない!)のような単純な値のみを保存する必要がある場合、ここで使用したものを次に示します。

import 'package:shared_preferences/shared_preferences.Dart';

asyncFunc() async { // Async func to handle Futures easier; or use Future.then
  SharedPreferences prefs = await SharedPreferences.getInstance();
}
...

// Set
prefs.setString('apiToken', token);

// Get
String token = prefs.getString('apiToken');

// Remove
prefs.remove('apiToken');

Pubspec.yamlにshared_preferences依存関係を追加することを忘れないでください(間隔形式を保持):

dependencies:

  shared_preferences: any
2
George

ローカルストレージに大量のデータを保存する場合は、sqfliteライブラリを使用できます。設定は非常に簡単で、私は個人的にいくつかのテストプロジェクトに使用しましたが、正常に機能しています。

https://github.com/tekartik/sqflite このチュートリアル- https://proandroiddev.com/flutter-bookshelf-app-part-2-personal-notes-and- database-integration-a3b47a84c57

クラウドにデータを保存する場合は、firebaseを使用できます。 Googleが提供する確かなサービスです。

https://firebase.google.com/docs/flutter/setup

0
Ishan Fernando