Android - Upload video/audio file to Firebase Storage(Android-将视频/音频文件上传到Firebase存储)
本文介绍了Android-将视频/音频文件上传到Firebase存储的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用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();
}
}
推荐答案
您每次对该用户的上载使用相同的文件路径:
videoRef = storageRef.child("/videos/" + userUid);
相反,您需要为每次上传提供一些唯一的文件名,并将用户id视为目录组件,而不是文件本身的名称:
String filename = "you put a unique file name here";
videoRef = storageRef.child("/videos/" + userUid + "/" + filename);
这篇关于Android-将视频/音频文件上传到Firebase存储的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
织梦狗教程
本文标题为:Android-将视频/音频文件上传到Firebase存储


基础教程推荐
猜你喜欢
- Android:getLastKnownLocation(LocationManager.NETWORK_PROVIDER 2022-01-01
- AdMob 广告未在模拟器中显示 2022-01-01
- 通过重定向链接在 Google Play 中打开应用 2022-01-01
- libGDX 从精灵或纹理中获取像素颜色 2022-01-01
- Cocos2d iPhone 非矩形精灵触摸检测 2022-01-01
- iOS4 创建后台定时器 2022-01-01
- navigator.geolocation.getCurrentPosition 在 Android 浏览器上 2022-01-01
- iPhone - 获取给定地点/时区的当前日期和时间并将其与同一地点的另一个日期/时间进行比较的正确方法 2022-01-01
- 如何从 logcat 中删除旧数据? 2022-01-01
- NSString intValue 不能用于检索电话号码 2022-01-01