Flatter Firebase,添加第二张照片,但Firebase仅使用一个url

Flatter Firebase,添加第二张照片,但Firebase仅使用一个url,firebase,flutter,dart,file-upload,photo,Firebase,Flutter,Dart,File Upload,Photo,我已经在我的个人资料表注册了这个代码。它将拍摄两张不同的照片,但在提交表单后,firebase仅为这两张照片使用一个Url。这是用户注册时启动的配置文件表单。这将提供给ProfileBloc,用户存储库是调用firebase的地方。它适用于一张照片,我可以在需要第一张照片时调用它。Firebase可以同时看到照片和宠物照片,但使用相同的URL,因此它只显示第一张上传的照片 代码 class ProfileForm扩展StatefulWidget{ 最终用户存储库_UserRepository;

我已经在我的个人资料表注册了这个代码。它将拍摄两张不同的照片,但在提交表单后,firebase仅为这两张照片使用一个Url。这是用户注册时启动的配置文件表单。这将提供给ProfileBloc,用户存储库是调用firebase的地方。它适用于一张照片,我可以在需要第一张照片时调用它。Firebase可以同时看到照片和宠物照片,但使用相同的URL,因此它只显示第一张上传的照片

代码

class ProfileForm扩展StatefulWidget{
最终用户存储库_UserRepository;
ProfileForm({@required UserRepository UserRepository,userId})
:assert(userRepository!=null),
_userRepository=userRepository;
@凌驾
_ProfileFormState createState()=>\u ProfileFormState();
}
文件照片,petPhoto;
@凌驾
小部件构建(构建上下文){
Size Size=MediaQuery.of(context).Size;
BlocBuilder(
生成器:(上下文、状态){
容器(
宽度:size.width,
子:堆栈(
儿童:[
圆形(
半径:尺寸。宽度*0.3,
背景颜色:颜色。透明,
子:photo==null
?手势检测器(
onTap:()异步{
文件getPic=
等待FilePicker.getFile(
类型:FileType.image);
if(getPic!=null){
设置状态(){
photo=getPic;
});
}
},
子:Image.asset(
“assets/images/addPhoto.png”),
)
:手势检测器(
onTap:()异步{
文件getPic=
等待FilePicker.getFile(
类型:FileType.image);
if(getPic!=null){
设置状态(){
photo=getPic;
});
}
},
孩子:圆环星(
半径:尺寸。宽度*0.3,
背景图片:FileImage(照片),
),
),
),
定位(
前50名,
左:150.0,
孩子:圆环星(
半径:尺寸。宽度*0.3,
背景颜色:颜色。透明,
子项:petPhoto==null
?手势检测器(
onTap:()异步{
文件getPetPic=
等待FilePicker.getFile(
类型:FileType.image);
如果(getPetPic!=null){
设置状态(){
petPhoto=getPetPic;
});
}
},
子:Image.asset(
“assets/images/addPetPhoto.png”),
)
:手势检测器(
onTap:()异步{
文件getPetPic=
等待FilePicker.getFile(
类型:FileType.image);
如果(getPetPic!=null){
设置状态(){
petPhoto=getPetPic;
});
}
},
孩子:圆环星(
半径:尺寸。宽度*0.3,
背景图片:
文件图像(petPhoto),
),
),
),
)
],
));}}
未来用户信息(用户ID)异步{
用户_User=User();
等待_firestore.collection('users').document(userId.get()。然后((user){
_user.uid=user.documentID;
_user.photo=user['photoUrl'];
_user.petPhoto=user['petPhotoUrl'];
});
返回用户;
}
//配置文件设置
未来配置文件设置(文件照片,
字符串userId,
文件(照片)异步{
StorageUploadTask StorageUploadTask;
storageUploadTask=FirebaseStorage.instance
.ref()
.child('userPhotos')
.child(用户ID)
.child(用户ID)
.putFile(照片);
返回wait wait storageUploadTask.onComplete.then((ref)async{
等待ref.ref.getDownloadURL()。然后((url)异步{
等待ref.ref.getDownloadURL()。然后((urlPet)异步{
wait_firestore.collection('users').document(userId).setData({
“uid”:用户ID,
“photoUrl”:url,
“petPhotoUrl”:urlPet,
});
});
});
});
}