来自共享首选项的 Firebase 数据

问题描述 投票:0回答:0

所以我有这个应用程序,它有两个屏幕——登录和个人资料。 我使用以下代码从 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 的新手,我们将不胜感激。

firebase flutter dart google-cloud-firestore sharedpreferences
© www.soinside.com 2019 - 2024. All rights reserved.