所以我有这个应用程序,它有两个屏幕——登录和个人资料。 我使用以下代码从 firebase 获取数据:
static Map? userData;
//Login Button onPressed
getUserContent() async {
await fireStore.collection("SomeCollection").doc(uid)
.get()
.then((value) {
setState(() {
userData = (value.data()!);
});
});
}
然后我将这些数据保存到共享首选项中,这样当用户重新打开应用程序时,他们就不必再次登录,并且从 firebase 获取的数据将存储在配置文件屏幕上。
//Set Data to SP Function
String someString = LoginScreenState.userData!['Name'].toString();
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('someStringKey', someString);
//Get Data from SP Function
spString = prefs.getString('someStringKey')!;
然后我在 Profile Screen 的初始状态调用这两个函数。 但是,如果我登录,它会给我一个 LateInitializationError,因为共享首选项中的字符串为空。
我是 flutter 的新手,我们将不胜感激。