Flutter开发:Firestore服务不可用异常及个人资料页数据问题排查
开发Flutter个人资料页时遇到问题,调用Firestore中的用户名时触发FirebaseException [cloud_firestore/unavailable]错误,提示服务当前不可用。点击报错后VSCode指向error_patch.dart文件中的以下行:
// external static Never _throw(Object error, StackTrace stackTrace);
错误截图:

相关代码如下:
class profile extends StatefulWidget { const profile({Key? key,required this.userProfile}) : super(key: key); final String? userProfile; @override State<profile> createState() => _profileState(); } class _profileState extends State<profile> { final userRef = FirebaseFirestore.instance.collection('users'); Future<UserModel?> getData() async { final userRef = FirebaseFirestore.instance.collection('users'); final doc = await userRef.doc(widget.userProfile).get(); if (doc.exists) { var data = doc.data(); } else { return null; } final data = await FirebaseFirestore.instance .collection('users') .doc(userRef.id) .get(); if (data.exists) { UserModel user = UserModel.fromMap(data.data()!); return user; } } late final future = getData(); Widget buildprofileheader() { return FutureBuilder<UserModel?>(future:future, builder: ((context, snapshot) { if(!snapshot.hasData){ UserModel user=UserModel.fromMap(userRef.parameters); return Padding(padding:EdgeInsets.all(16.0), child: Column( children: [ Row( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Icon(Icons.account_circle, size: 90,) ], ), Container( alignment: Alignment.center, padding: EdgeInsets.all(12.0), child: Text( user.Username ?? "defualtVlueNullCase", style: TextStyle( fontWeight: FontWeight.bold, fontSize:17.0, ), ), ), ], ), );} else{ return CircularProgress();} }), ); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( centerTitle: true, title: Text( "Profile", ), ), body: ListView(children: <Widget>[ buildprofileheader(), ])); } }
内容的提问来源于stack exchange,提问作者Abderrezak Douba
相关产品推荐
相关产品推荐

