【发布时间】:2021-07-10 04:26:57
【问题描述】:
Hooolaaa 社区,我有一个非常有趣的问题,我不太明白, 我定义了一个字符串变量(String uName = "";)并通过执行(uName = userCurrentInfo.name;)将我当前的用户名传递给它,之后我在 2 Text Widget(Text('${userCurrentInfo?.名称}',样式:TextStyle(fontSize: 16.0, fontFamily: "Brand Bold"),), 问题 : 它有时不显示用户名,直到我重新启动我的 android studio 并卸载我的应用程序并重新启动,然后它开始工作。而其他时候它只是工作。 我尝试过的: 我曾尝试直接从firebase中的currentUser名称调用,如下所示:( Text('${userCurrentInfo?.name}',) 和这个工作,但我不想每次我想使用这个名字时都重复这个我当前的用户。 感谢您的宝贵时间
这是错误消息: 未处理的异常:NoSuchMethodError:在 null 上调用了 getter 'name'。 收件人:空
class MainScreen extends StatefulWidget
{
static const String idScreen = "mainScreen";
@override
_MainScreenState createState() => _MainScreenState();
}
class _MainScreenState extends State<MainScreen> with TickerProviderStateMixin
{
String uName="";
void locatePosition() async
{
Position position = await Geolocator.getCurrentPosition(desiredAccuracy:
LocationAccuracy.high);
currentPosition = position;
LatLng latLatPosition = LatLng(position.latitude, position.longitude);
String address = await AssistantMethods.searchCoordinateAddress(position, context);
print("This is your Address :: " + address);
initGeoFireListner();
=====> uName = userCurrentInfo.name; // I have user name stored in my uName String Variable.
appFirebaseMonitoring();
AssistantMethods.retrieveHistoryInfo(context);
}
// I used it my Drawer in the build method
@override
Widget build(BuildContext context) {
createIconMarker();
return Scaffold(
key: scaffoldKey,
drawer: Container(
color: Colors.white,
width: 255.0,
child: Drawer(
child: ListView(
children: [
//Drawer Header
Container(
height: 165.0,
child: DrawerHeader(
decoration: BoxDecoration(color: Colors.white),
child: Row(
children: [
Image.asset("images/user_icon.png", height: 65.0, width: 65.0,),
SizedBox(width: 16.0,),
Expanded(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(uName, style: TextStyle(fontSize: 16.0, fontFamily: "Brand Bold"),),
SizedBox(height: 6.0,),
GestureDetector(
onTap: ()
{
Navigator.push(context, MaterialPageRoute(builder: (context)=> ProfileTabPage()));
},
child: Text("Visit Profile")
),
],
),
),
],
),
),
),
【问题讨论】:
标签: flutter dart firebase-realtime-database firebase-authentication