gpt4 book ai didi

firebase - 有什么方法可以根据当前用户的UID将图像从Firebase加载到Flutter项目中

转载 作者:行者123 更新时间:2023-12-03 03:31:47 24 4
gpt4 key购买 nike

我想从Firebase存储中加载图像。我为{users uid} .png用户上传了图片,例如个人资料照片。因此,当我进入用户个人资料屏幕时,我想将这些图像从Firebase相应地上传到当前用户uid。最好的方法是什么?我有一个设置我的用户属性(例如final loggegInUser)的异步方法,并且我有一个异步方法

void getCurrentUser() async {
try {
final user = await _auth.currentUser();
if (user != null) {
loggedInUser = user;
print(loggedInUser.email);
print(uid);
}
} catch (e) {
print(e);
}
}
这个方法设置了我的全局loggingInUser属性,然后我想要像这样从Firebase存储中加载图像
CircleAvatar(
backgroundColor: Colors.black,
backgroundImage: FirebaseImage(
'gs://homeparty-68792.appspot.com/user_profile_images/${loggedInUser.uid}.png')
,

radius: 100,
),
但是当我加载此屏幕时,我得到
ERROR TYPE Exception has occurred. NoSuchMethodError (NoSuchMethodError: The getter 'uid' was called on null. Receiver: null Tried calling: uid)
错误。 getCurrentUser()方法可以正常工作,它会打印电子邮件和密码,但是在构建Widget中会返回null。为什么会发生这种情况,我需要一些帮助?

最佳答案

如果要在getCurrentUser()中调用initState,则问题在于在检索用户之前会先调用build()。因此,最好的办法是将cloud_firestore升级到0.14.0版本并添加firebase_core : 0.5.0:

dependencies:
flutter:
sdk: flutter
firebase_core : ^0.5.0
firebase_auth : ^0.18.0
firebase_storage:^4.0.0
# cloud_firestore: ^0.14.0 not sure if you are using
然后,您可以执行以下操作,首先初始化Firebase:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
并在 getCurrentUser()内部:
void getCurrentUser() {
try {
final user = _auth.currentUser;
if (user != null) {
loggedInUser = user;
print(loggedInUser.email);
print(uid);
}
} catch (e) {
print(e);
}
}
在新版本中,获取 currentUser不再是异步的,不需要 async/await
一些有用的链接:
No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp() in Flutter and Firebase
Undefined class 'FirebaseUser'
cloud_firestore 0.14.0 how to use the data method
The getter 'instance' isn't defined for the type 'Firestore'

关于firebase - 有什么方法可以根据当前用户的UID将图像从Firebase加载到Flutter项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63518985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com