在整个Flutter环境中,我仍然是新手,欢迎提供任何帮助!在我的应用中执行注册过程时,步骤之一是上传用户个人资料图片。我想将个人资料图片存储在Firebase存储上,然后将其从Firebase身份验证重命名为User UID。问题是整个注册过程完成后我获得的用户UID,因此我必须在这里使用Future类来获取它。
我想这样保存它,以便我可以更轻松地找到每个用户的个人资料照片(我的应用具有多个用户角色,用户A,B,C ...),并在需要时提取它
Future<String> getUID() async {
final FirebaseUser user = await FirebaseAuth.instance.currentUser();
final String uid = user.uid;
_getUID(uid);
return uid;
}
String getterUID;
void _getUID(String uid) {
getterUID = uid;
}
Future<void> uploadPicture() async {
final StorageReference firebaseStorageReference =
FirebaseStorage.instance.ref().child(getUID.toString());
final StorageUploadTask task =
firebaseStorageReference.putFile(_pictureData['image']);
}
我设法将图片上传到Firebase存储,但是它是使用name(1)而不是使用Firebase Auth中的用户UID上传的。有什么技巧可以使它起作用吗?在此先感谢:)
(1)闭包()=>函数'getUID'的未来
答案 0 :(得分:0)
您正在将函数getUID
转换为字符串,而不是评估函数并将函数结果转换为字符串,这甚至不需要执行,因为您的函数已经返回了{{1} },放在String
内。
有两个步骤:
Future
getUID -> getUID()
await
获得Future
的结果:String
您的最终功能将如下所示:
getUID() -> await getUID()