android - 将图片上传到 Firebase 存储会自动删除之前上传的图片
问题描述
我正在尝试编写一个 ProfileActivity,它可以让您选择将带有您姓名的图像上传到其中。
这是上传功能:
private void uploadFile(){
final StorageReference fileReference = mStorageRef.child(getFileExtension(mImageUri));
mUploadTask = fileReference.putFile(mImageUri);
fileReference.putFile(mImageUri)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Toast.makeText(ProfileActivity.this, "Uploaded Successfully", Toast.LENGTH_SHORT).show();
Upload upload = new Upload(mEditTextFileName.getText().toString().trim(),
taskSnapshot.getUploadSessionUri().toString().trim(), mEditTextFileName.getText().toString().trim());
uploadID = mEditTextFileName.getText().toString().trim();
mDatabaseRef.child(uploadID).setValue(upload);
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(ProfileActivity.this, "No file selected", Toast.LENGTH_SHORT).show();
}
});
}
我不知道出了什么问题。我看到所有父母的所有 mImageUrl 值都更改为我刚刚上传的项目。
我的上传.class:
ublic class Upload {
private String mName;
private String mImageUrl;
private String key;
public Upload(){
//constructor
}
public Upload(String name, String imageUrl, String id){
if (name.trim().equals("")){
name = "No Name";
}
this.mName = name;
this.mImageUrl = imageUrl;
this.key = id;
}
我希望每次在 mEditTextFileName 上使用不同的名称上传图像,这会将当前上传的图像存储在 Firebase 存储中,并且不会更改所有父母的 mImageUrl 值。
解决方案
推荐阅读
- etcd - etcd 3 范围查询
- c++ - SFML 游戏无法在 Windows 上编译
- android - Volley 的 StringRequest()
- python - 课堂练习题中的Python语法错误
- html - 我无法让我的 flexbox 在 css 中使用“justify-content : center”将内容居中
- javascript - 无论如何在我调试调用堆栈时检查未调用的异步任务队列
- javascript - 为什么我在 express 中收到 404 错误?我已在视图和路由文件夹中正确创建了文件
- javascript - 如何使用 Node.js 和 MongoDB 实现“滚动加载更多”?
- reactjs - Gatsby 在没有服务器的情况下作为本地文件 (index.html) 运行
- java - 如何在 POJO/Model 中使用 FieldValue.serverTimestamp() 获取状态时间戳?