【发布时间】:2019-05-26 13:22:17
【问题描述】:
content: Column(
children: <Widget>[
_buildUserPic1(),
_buildUserPic2()
],
),
以下是我尝试获取使用 Google Firebase 身份验证登录的用户照片的两种方式。
Container _buildUserPic(){
return Container(
child: Image.network(
user.photoUrl
),
);
}
第二种方式是
Container _buildUserPic2(){
return Container(
child: Container(
decoration: BoxDecoration(
shape: BoxShape.circle,
image: DecorationImage(
image: NetworkImage(widget.url),
)
),
)
);}
第一个成功生成个人资料图片,但另一个给出错误。获取图像的正确方法是什么?我应该使用异步方法来获取图像吗?
编辑:
user 是 FirebaseUser 的一个实例。
widget.url 用于访问String url(在有状态的小部件中),其中
final String url = user.photoUrl;
编辑2:
final FirebaseAuth firebaseauth = FirebaseAuth.instance;
final GoogleSignIn gsa = new GoogleSignIn();
Future<FirebaseUser> _signIn() async {
GoogleSignInAccount googleSignInAccount = await gsa.signIn();
GoogleSignInAuthentication googleSignInAuthentication = await googleSignInAccount.authentication;
FirebaseUser firebaseUser = await firebaseauth.signInWithGoogle(
idToken: googleSignInAuthentication.idToken,
accessToken: googleSignInAuthentication.accessToken,
);
user = firebaseUser;
googleSignIn = gsa;
}
【问题讨论】:
-
什么是用户和小部件变量?
-
你从哪里得到“用户”?您是否在小部件中将用户作为参数传递?您可以在 _buildUserPic2 方法中打印“widget.url”吗?您在控制台中遇到什么错误?
-
问题已编辑。
-
我得到的错误是 photoUrl 为空
-
哪个为空:widget.url 或 user.photoUrl?您如何将“用户”传递给您的小部件?
标签: firebase flutter google-authentication