我正在尝试在我的 Flutter 应用程序中实现包 shared_preferences 。
我已将包包含在 pubspec.yaml 文件中。
我创建了一个名为 StorageUtil 的帮助程序类来管理项目中的 shared_preferences。
这是 shared_preferences_util.dart:
import 'package:shared_preferences/shared_preferences.dart';
class StorageUtil {
static StorageUtil _storageUtil;
static SharedPreferences _preferences;
static Future<StorageUtil> getInstance() async {
if (_storageUtil == null) {
// keep local instance till it is fully initialized.
var secureStorage = StorageUtil._();
await secureStorage._init();
_storageUtil = secureStorage;
}
return _storageUtil;
}
StorageUtil._();
Future _init() async {
_preferences = await SharedPreferences.getInstance();
}
// get string
static String getString(String key, {String defValue = ''}) {
if (_preferences == null) return defValue;
return _preferences.getString(key) ?? defValue;
}
// put string
static Future<bool> putString(String key, String value) {
if (_preferences == null) return null;
return _preferences.setString(key, value);
}
}
然后在文件 notification_service.dart 我在 shared_preferences 中创建一个项目:
_refreshToken() {
_firebaseMessaging.getToken().then((token) async {
print('token: $token');
StorageUtil.putString("token_firebase", token.toString());
print('token despues de shared:' + token);
}, onError: _tokenRefreshFailure);
}
打印输出:
I/flutter (29912): token despues ed shared:fy0Pk1asTOejYrWYXbULBu:APA91bGk2TLqdiLbGvZp7IrTggLfjwYcvhENB83RQj-7x1CEPoou_cY7Rq0eB6rFqEfb386pxSsWAogRc8HwQjK0Y9q9kyKgzSJ6ZCQ3qhFBIjaLhS2sZKJ-N1k7hdrRHdboyUb3WvGS
后来我试图得到 shared_preferences 项目如下:
final _tokenFb = StorageUtil.getString("token_firebase");
但它始终是空字符串。
print("Token firebase en authbloc: " + _tokenFb);
输出:
I/flutter (29912): Token firebase en authbloc:
我错过了什么?