Flutter 保存多个用户的共享偏好
Flutter save shared preferences of multiple users
我有两种设置要保存在用户应用程序设备上。首先是过滤器设置,其次是用户是否是第一次打开应用程序。
对于过滤器,我有多个布尔值要保存,对于第一个打开的应用程序值,我只需要一个布尔值。现在我的问题是,如果我使用另一个帐户登录应用程序,则会选择第一个帐户的值。我需要为每个帐户设置一组,但我不知道如何,因为我一直在更改单个值。
这些是我获取和设置过滤器的函数:
void putShared(String key, bool val) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setBool(key, val);
}
Future getShared(String key) async {
final prefs = await SharedPreferences.getInstance();
bool val = prefs.getBool(key) == null ? false : (prefs.getBool(key));
return val;
}
那么如何更改代码以使其适用于多个帐户?
我的建议是,在将值保存在 sharedprefrences 中时,您宁愿使用一个映射,其中的键必须是唯一的,例如您需要的 ID 和值。然后只需对地图进行编码,将其转换为字符串,然后您可以将其保存为 sharedPrefrences 中的字符串,然后当您检索时,您只需解码地图并检查登录的用户 ID 是否与您登录的 ID 匹配(如果不匹配)不获取值,否则获取它们。
您可以添加唯一的用户 ID 作为所有键的前缀。喜欢..
void putShared(String key, bool val) async {
String userSpecificKey = userID + key;
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setBool(userSpecificKey, val);
}
Future getShared(String key) async {
String userSpecificKey = userID + key;
final prefs = await SharedPreferences.getInstance();
bool val = prefs.getBool(userSpecificKey) == null ? false : (prefs.getBool(userSpecificKey));
return val;
}
我有两种设置要保存在用户应用程序设备上。首先是过滤器设置,其次是用户是否是第一次打开应用程序。
对于过滤器,我有多个布尔值要保存,对于第一个打开的应用程序值,我只需要一个布尔值。现在我的问题是,如果我使用另一个帐户登录应用程序,则会选择第一个帐户的值。我需要为每个帐户设置一组,但我不知道如何,因为我一直在更改单个值。
这些是我获取和设置过滤器的函数:
void putShared(String key, bool val) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setBool(key, val);
}
Future getShared(String key) async {
final prefs = await SharedPreferences.getInstance();
bool val = prefs.getBool(key) == null ? false : (prefs.getBool(key));
return val;
}
那么如何更改代码以使其适用于多个帐户?
我的建议是,在将值保存在 sharedprefrences 中时,您宁愿使用一个映射,其中的键必须是唯一的,例如您需要的 ID 和值。然后只需对地图进行编码,将其转换为字符串,然后您可以将其保存为 sharedPrefrences 中的字符串,然后当您检索时,您只需解码地图并检查登录的用户 ID 是否与您登录的 ID 匹配(如果不匹配)不获取值,否则获取它们。
您可以添加唯一的用户 ID 作为所有键的前缀。喜欢..
void putShared(String key, bool val) async {
String userSpecificKey = userID + key;
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setBool(userSpecificKey, val);
}
Future getShared(String key) async {
String userSpecificKey = userID + key;
final prefs = await SharedPreferences.getInstance();
bool val = prefs.getBool(userSpecificKey) == null ? false : (prefs.getBool(userSpecificKey));
return val;
}