之前上传的图像将被FireBase Storage Android中的新图像删除
好的,当我第一次上传图像时,它是好的,但是在上传第二个图像后,前一个图像会从存储中删除。我喜欢我用来上传图片的代码 我已经链接了负责将文件上传到Firebase存储的整个activity类。尝试为图像指定不同的名称(uid),但无效之前上传的图像将被FireBase Storage Android中的新图像删除,android,firebase,firebase-storage,Android,Firebase,Firebase Storage,好的,当我第一次上传图像时,它是好的,但是在上传第二个图像后,前一个图像会从存储中删除。我喜欢我用来上传图片的代码 我已经链接了负责将文件上传到Firebase存储的整个activity类。尝试为图像指定不同的名称(uid),但无效 import android.content.Intent; import android.net.Uri; import android.support.annotation.NonNull; import android.support.v7.app.AppCo
import android.content.Intent;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.tasks.Continuation;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.StorageTask;
import com.google.firebase.storage.UploadTask;
import com.squareup.picasso.Picasso;
import java.util.UUID;
public class ActivityUltimateMemeWorks extends AppCompatActivity {
private static final int PICK_IMAGE_REQUEST = 1;
private Button mButtonChooseImage;
private Button mButtonUpload;
private TextView mTextViewShowUploads;
private EditText mEditTextFileName;
private ImageView mImageView;
private ProgressBar mProgressBar;
private StorageReference mStorageRef;
private DatabaseReference mDatabaseRef;
private StorageTask mUploadTask;
private String imageIdentifier;
private Uri mImageUri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ultimate_meme_works);
mButtonChooseImage = findViewById(R.id.button_choose_image);
mButtonUpload = findViewById(R.id.button_upload);
mTextViewShowUploads = findViewById(R.id.text_view_show_uploads);
mEditTextFileName = findViewById(R.id.edit_text_file_name);
imageIdentifier = UUID.randomUUID().toString() + ".png";
mImageView = findViewById(R.id.image_view);
mProgressBar = findViewById(R.id.progress_bar);
mStorageRef = FirebaseStorage.getInstance().getReference("UMWuploads").child("images").child(imageIdentifier);
mDatabaseRef = FirebaseDatabase.getInstance().getReference("UMWuploads");
mButtonChooseImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openFileChooser();
}
});
mButtonUpload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mUploadTask != null && mUploadTask.isInProgress()) {
Toast.makeText(ActivityUltimateMemeWorks.this, "Upload in progress", Toast.LENGTH_SHORT).show();
} else {
uploadFile();
}
}
});
mTextViewShowUploads.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openImagesActivity();
}
});
}
private void openFileChooser() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, PICK_IMAGE_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK
&& data != null && data.getData() != null) {
mImageUri = data.getData();
Picasso.get().load(mImageUri).into(mImageView);
}
}
private void uploadFile() {
if (mImageUri != null) {
mStorageRef.putFile(mImageUri).continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
@Override
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
if (!task.isSuccessful()) {
throw task.getException();
}
return mStorageRef.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()) {
Uri downloadUri = task.getResult();
Toast.makeText(ActivityUltimateMemeWorks.this, "uploading", Toast.LENGTH_SHORT).show();
Log.e("hello", "then: " + downloadUri.toString());
Upload upload = new Upload(mEditTextFileName.getText().toString().trim(),
downloadUri.toString());
mDatabaseRef.push().setValue(upload);
} else {
Toast.makeText(ActivityUltimateMemeWorks.this, "upload failed: " + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
}
}
private void openImagesActivity() {
Intent intent = new Intent(this, ImagesActivity.class);
startActivity(intent);
}
}
导入android.content.Intent;
导入android.net.Uri;
导入android.support.annotation.NonNull;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.ImageView;
导入android.widget.ProgressBar;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.google.android.gms.tasks.Continuation;
导入com.google.android.gms.tasks.OnCompleteListener;
导入com.google.android.gms.tasks.Task;
导入com.google.firebase.database.DatabaseReference;
导入com.google.firebase.database.FirebaseDatabase;
导入com.google.firebase.storage.firebase存储;
导入com.google.firebase.storage.StorageReference;
导入com.google.firebase.storage.StorageTask;
导入com.google.firebase.storage.UploadTask;
导入com.squareup.picasso.picasso;
导入java.util.UUID;
公共类活动UltimateMemeWorks扩展AppCompativeActivity{
私有静态最终整数选取图像请求=1;
私人按钮mButtonChooseImage;
专用按钮MBUTONUPLOAD;
私有文本视图MTEXTVIEWSHOW上传;
私有EditText mEditTextFileName;
私有图像视图mImageView;
私人ProgressBar mProgressBar;
私有存储参考mStorageRef;
私有数据库引用mDatabaseRef;
专用存储任务mUploadTask;
私有字符串标识符;
私有Uri-mimageri;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u ultimate\u meme\u works);
mButtonChooseImage=findviewbyd(R.id.button\u choose\u image);
mButtonUpload=findviewbyd(R.id.button\u上传);
mTextViewShowUploads=findviewbyd(R.id.text\u view\u show\u uploads);
mEditTextFileName=findviewbyd(R.id.edit\u text\u file\u name);
imageIdentifier=UUID.randomUUID().toString()+“.png”;
mImageView=findviewbyd(R.id.image\u视图);
mProgressBar=findviewbyd(R.id.progress\u bar);
mStorageRef=FirebaseStorage.getInstance().getReference(“UMWuploads”).child(“images”).child(imageIdentifier);
mDatabaseRef=FirebaseDatabase.getInstance().getReference(“UMWuploads”);
mButtonChooseImage.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
openFileChooser();
}
});
mButtonUpload.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
if(mUploadTask!=null&&mUploadTask.isInProgress()){
Toast.makeText(ActivityUltimateMemeWorks.this,“正在上载”,Toast.LENGTH_SHORT.show();
}否则{
上传文件();
}
}
});
mTextViewShowUploads.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
openImagesActivity();
}
});
}
私有void openFileChooser(){
意图=新意图();
intent.setType(“image/*”);
intent.setAction(intent.ACTION\u GET\u CONTENT);
startActivityForResult(意图、拾取图像请求);
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
如果(requestCode==PICK\u IMAGE\u REQUEST&&resultCode==RESULT\u OK
&&数据!=null&&data.getData()!=null){
mimageri=data.getData();
Picasso.get().load(mimageri).into(mImageView);
}
}
私有void上传文件(){
if(mimageri!=null){
mStorageRef.putFile(mimageri).continueWithTask(新的Continuation(){
@凌驾
公共任务(@NonNull Task Task)引发异常{
如果(!task.issusccessful()){
抛出task.getException();
}
返回mstoragerf.getDownloadUrl();
}
}).addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Uri downloadUri=task.getResult();
Toast.makeText(ActivityUltimateMemeWorks.this,“上载”,Toast.LENGTH_SHORT.show();
Log.e(“hello”,“then:”+downloadUri.toString());
Upload Upload=新上载(mEditTextFileName.getText().toString().trim(),
下载uri.toString());
mDatabaseRef.push().setValue(上传);
}否则{
Toast.makeText(ActivityUltimateMemeWorks.this,“上载失败:”+task.getException().getMessage(),Toast.LENGTH\u SHORT.show();
}
}
});
}
}
私有void openImagesActivity(){
Intent Intent=新Intent(这是ImagesActivity.class);
星触觉(意向);
}
}
试试这个,每次上传时它都会更改文件名:
private void uploadFile() {
imageIdentifier = UUID.randomUUID().toString() + ".png";
mStorageRef = FirebaseStorage.getInstance().getReference("UMWuploads").child("images").child(imageIdentifier);
if (mImageUri != null) {
mStorageRef.putFile(mImageUri).continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
@Override
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
if (!task.isSuccessful()) {
throw task.getException();
}
return mStorageRef.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()) {
Uri downloadUri = task.getResult();
Toast.makeText(ActivityUltimateMemeWorks.this, "uploading", Toast.LENGTH_SHORT).show();
Log.e("hello", "then: " + downloadUri.toString());
Upload upload = new Upload(mEditTextFileName.getText().toString().trim(),
downloadUri.toString());
mDatabaseRef.push().setValue(upload);
} else {
Toast.makeText(ActivityUltimateMemeWorks.this, "upload failed: " + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
}
}
private void uploadFile(){
imageIdentifier=UUID.randomUUID().toString()+“.png”;
mStorageRef=FirebaseStorage.getInstance().getReference(“UMWuploads”).child(“