android - 有没有办法可以在不将旧图像删除到 Firebase 存储的情况下上传图像?
问题描述
我能够上传图像并给它一个name.jpg
然后将它传递给对象名称以上传到firebase。问题是只有一张图片能够留在火力基地中。我希望能够存储多张图片。
我无法找到改变这一点的方法。下面的代码是访问图库的功能,或者您可以使其访问相机。我能够将图片发送到 Firebase 存储,但只存储一张图片,前一张被删除。我不想要那个。我希望能够存储图片而不删除以前的图片。
class _MyHomePageState extends State<MyHomePage> {
File sampleImage;
Future getImage() async {
var tempImage = await ImagePicker.pickImage(source: ImageSource.gallery);
setState(() {
sampleImage = tempImage;
});
}
RaisedButton(
elevation: 7.0,
child: Text('Upload'),
textColor: Colors.white,
color: Colors.blue,
onPressed: () {
final StorageReference firebaseStorageRef = FirebaseStorage.instance.ref().child('myimage.jpg');
final StorageUploadTask task = firebaseStorageRef.putFile(sampleImage);
},
)
],
),
);
}
}
解决方案
所以有几个选择。首先是的,每当您将同名文件上传到 Firebase 存储中的同一目录时,它都会替换存在的文件。真的有两种选择:
- 以某种方式更改文件名。一个非常简单的方法是将当前日期时间附加到图像上,即
"myimage_" + Calendar.getInstance().getTime() + ".jpg"
. 您可能必须在此处导入日历实用程序。 - 将图像添加到唯一目录。在 Firebase 存储上,您可以像在本地计算机上一样创建目录。为此,在子方法参数中,您传递一个 URI 样式字符串
imgName = images/uniqueidentifier/myimage.jpg
,即将文件“myimage.jpg”保存到路径“images/uniqueidentifier”。
您可能希望将这些图像路径保存在某个地方,例如 Firestore,以便以后更容易与之交互。
https://firebase.google.com/docs/storage/android/upload-files进一步阅读。
推荐阅读
- vba - 我怎样才能写出螺旋形的代码?
- javascript - 在浏览器源代码调试工具中隐藏 ID
- hadoop - 从只读文件夹创建 HIVE 外部表
- java - 为什么 vaadin-grid 不显示链接(锚点)?
- unit-testing - 如何编写需要大量测试用例的 go 测试
- java - 无法使用 JAVA1.8 和 Tomcat 8.5.28 从 ConnectionWrapper 转换为 oracle.jdbc.OracleConnection
- sql - 编写一个查询以显示在他们出现的所有科目中获得超过 50 分的所有学生的姓名?
- api - WSO2 API 管理器无法正确响应 API
- javascript - 在数组中的第一个和最后一个元素之间交换,然后删除最后一个元素
- ios - Nsdata 到 PDF 而不写入文档目录中的该文件