如何解决无法使用共享首选项和本地存储在本地存储用户信息
这段代码来自我的本地存储数据文件,从我的测试来看,我猜错误在于 setUser 方法或下一个文件中的某个地方。
Option Explicit
Sub Sens_GT()
Dim j As Variant
For j = Range("FROM").Value To Range("TO").Value
Range("Sens_Reduction").Value = j
Range("Sens_Paste_GT").Offset(j,0) = Range("Sens_Copy_GT").Value
Next j
Range("Sens_Reduction") = 0
End Sub
如果来自从 Cloud Firestore 获取数据的文件中的这个:
class LocalStorageData extends GetxController{
static const CACHED_USER_DATA = 'CACHED_USER_DATA';
Future<UserModel?> get getUser async{
try{
UserModel userModel = await getUserData();
print(userModel);
return userModel;
}catch(e){
print(e.toString());
return null;
}
}
deleteUser()async{
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.clear();
}
getUserData()async{
SharedPreferences prefs = await SharedPreferences.getInstance();
var value = prefs.getString(CACHED_USER_DATA);
return UserModel.fromJson(json.decode(value!));
}
setUser(UserModel userModel)async{
SharedPreferences prefs = await SharedPreferences.getInstance();
print(userModel.name);
await prefs.setString(CACHED_USER_DATA,json.encode(userModel.ToJson()));
}
}
**this one is from my profile controller in this file the bug could be somewhere in getCurrentUser method but after testing it showed that the value is always null so maybe nothing is saved in the usermodel variable **
class ProfileViewModel extends GetxController{
@override
void onInit() {
// TODO: implement onInit
super.onInit();
getCurrentUser();
}
final LocalStorageData localStorageData = Get.find();
UserModel? _usermodel;
UserModel? get usermodel => _usermodel;
getCurrentUser()async{
await localStorageData.getUser.then((value) {
_usermodel = value;
});
}
Future<void> signOut ()async{
GoogleSignIn().signOut();
FirebaseAuth.instance.signOut();
localStorageData.deleteUser();
}
}
任何帮助将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。