如何将图像上载到firebase存储中的文件夹

如何将图像上载到firebase存储中的文件夹,firebase,flutter,Firebase,Flutter,我正在编写一个应用程序,从gallery中选择一幅图像,并将其上传到firestore的文件夹中 await Future.forEach(_paths.entries, (v) async { String uid = Uuid().v1(); StorageReference imgReference = _storageReference.child("Form2").child(uid);

我正在编写一个应用程序,从gallery中选择一幅图像,并将其上传到firestore的文件夹中

await Future.forEach(_paths.entries, (v) async {
                        String uid = Uuid().v1();
                        StorageReference imgReference = 
_storageReference.child("Form2").child(uid);
                        StorageUploadTask task = imgReference.putFile(
                            File(v.value)
                        );
                        StorageTaskSnapshot downloadURL = await 
task.onComplete;
                        String value = await downloadURL.ref.getDownloadURL();
                    paths[uid] = value;
                  }

图像未上载到文件夹中。但是它直接上传到firestore中

您必须在.child()中指定文件夹名称。比如:
.child(“/$folder”).child($fileName”)

例如:

    StorageReference ref = FirebaseStorage.instance.ref().child('/$folder').child(fileName);
    StorageUploadTask uploadTask = ref.putData(imageData);
    print('Upload triggered in the background.');
    ...

    return await (await uploadTask.onComplete).ref.getDownloadURL();

}您必须在.child()中指定文件夹名称。比如:
.child(“/$folder”).child($fileName”)

例如:

    StorageReference ref = FirebaseStorage.instance.ref().child('/$folder').child(fileName);
    StorageUploadTask uploadTask = ref.putData(imageData);
    print('Upload triggered in the background.');
    ...

    return await (await uploadTask.onComplete).ref.getDownloadURL();

}

这是一段代码,用于将带有名称的图像上载到firebase。Sliderutils是一个具有getName()和getImageUrl()函数(getter和setter)的类

StorageReference=
mStorageRef.child(System.currentTimeMillis()+“”+getPath(filePath));
mStorageTask=Ref.putFile(文件路径)
.addOnSuccessListener(新建)
OnSuccessListener(){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
Toast.makeText(MainActivity.this,“图像已成功上载”,Toast.LENGTH_LONG.show();
SliderUtils SliderUtils=新的SliderUtils(EditTextName.getText().toString().trim(),
taskSnapshot.getDownloadUrl().toString());
字符串uploadId=mDatabaseRef.push().getKey();
mDatabaseRef.child(uploadId).setValue(sliderUtils);
}
})
.addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常){
Toast.makeText(MainActivity.this,“图像上载失败”,Toast.LENGTH_SHORT.show();
}
})

这是一个将带有名称的图像上载到firebase的代码。Sliderutils是一个具有getName()和getImageUrl()函数(getter和setter)的类

StorageReference=
mStorageRef.child(System.currentTimeMillis()+“”+getPath(filePath));
mStorageTask=Ref.putFile(文件路径)
.addOnSuccessListener(新建)
OnSuccessListener(){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
Toast.makeText(MainActivity.this,“图像已成功上载”,Toast.LENGTH_LONG.show();
SliderUtils SliderUtils=新的SliderUtils(EditTextName.getText().toString().trim(),
taskSnapshot.getDownloadUrl().toString());
字符串uploadId=mDatabaseRef.push().getKey();
mDatabaseRef.child(uploadId).setValue(sliderUtils);
}
})
.addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常){
Toast.makeText(MainActivity.this,“图像上载失败”,Toast.LENGTH_SHORT.show();
}
})