在我的代码中,从firestore数据库中获取用户名,这在UI中显示得很好。我想将该名称传递给共享首选项函数,并存储在那里,在其他页面中也使用该名称。
在我之前的问题中,我已经解决了将名称保存到sharedpreference方法中的问题,但是现在我无法显示名称,它显示为null。
控制台屏幕截图:
电码
@override
void initState() {
super.initState();
getData();
fetchName();
storeName();
getStoreName();
}
Future getStoreName() async {
getNameFromSharedPreferences();
print("name $displayName");
}
void storeName() {
String displayName = '${user?.displayName}';
saveNameToSharedPreferences(displayName);
}
共享首选项代码
import 'package:shared_preferences/shared_preferences.dart';
String? _displayName;
String? get displayName => _displayName;
Future saveNameToSharedPreferences(String displayName) async {
final SharedPreferences sn = await SharedPreferences.getInstance();
await sn.setString('displayName', displayName);
}
Future getNameFromSharedPreferences() async {
final SharedPreferences sn = await SharedPreferences.getInstance();
_displayName = sn.getString('displayName');
}
如何从SharedPreferences方法中获取名称和显示?
1条答案
按热度按时间enyaitl31#
您的函数
getNameFromSharedPreferences()
是一个future
,您需要await
,然后显示name
的值并通过注销
name
来确保将其存储在sharedPreference
中