我正在使用 Firebase 存储来保存视频/音频用户的文件。
我的主要想法是将每个视频/音频保存在用户 ID (UID) 下。
这意味着每个用户在其 UID 下保存有多个视频/音频文件。
我写了一个代码,问题是他不断将新视频保存在我保存的旧视频上。
请告诉我哪里错了
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == PICK_VIDEO_REQUEST) {
Uri selectedVideoUri = data.getData();
String userUid = FirebaseAuth.getInstance().getCurrentUser().getUid();
StorageReference storageRef = FirebaseStorage.getInstance().getReference();
videoRef = storageRef.child("/videos/" + userUid );
//TODO: save the video in the db
uploadData(selectedVideoUri);
}else if(requestCode == PICK_AUDIO_REQUEST){
//TODO: save the audio in the db
}
}
}
private void uploadData(Uri videoUri) {
if(videoUri != null){
UploadTask uploadTask = videoRef.putFile(videoUri);
uploadTask.addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if(task.isSuccessful())
Toast.makeText(getContext(), "Upload Complete", Toast.LENGTH_SHORT).show();
progressBarUpload.setVisibility(View.INVISIBLE);
}
}).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
updateProgress(taskSnapshot);
}
});
}else {
Toast.makeText(getContext(), "Nothing to upload", Toast.LENGTH_SHORT).show();
}
}
您使用相同的文件路径every该用户上传的时间:
videoRef = storageRef.child("/videos/" + userUid);
相反,您需要为每次上传提供一些唯一的文件名,并将用户 ID 视为目录组件而不是文件本身的名称:
String filename = "you put a unique file name here";
videoRef = storageRef.child("/videos/" + userUid + "/" + filename);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)