标签: firebase-storage

FirebaseStorage:如何删除目录

400当我尝试删除目录时,FirebaseStorage始终返回错误,例如以下内容始终返回错误400.

let storageRef = FIRStorage.storage().reference().child("path/to/directory")
storageRef.deleteWithCompletion { (error) in
    print("error: \(error)") // always prints error code 400
}
Run Code Online (Sandbox Code Playgroud)

但是,删除文件工作正常,例如不会返回错误:

let storageRef = FIRStorage.storage().reference().child("path/to/file.jpg")
storageRef.deleteWithCompletion { (error) in
    print("error: \(error)") // works fine, error is nil
}
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?我不认为它不受FirebaseStorage的支持,因为从目录中逐个删除文件会非常蹩脚(特别是如果所述目录有100或1000个).

ios firebase swift firebase-storage

13
推荐指数
7
解决办法
8538
查看次数

使用Firebase上传更新进度条

我试图添加一个进度条来上传firebase上的文件.但不幸的是,它并不表示上传进度.logcat和进度条都只显示文件何时达到100%

   uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                double progress = 100.0 * (taskSnapshot.getBytesTransferred() / taskSnapshot.getTotalByteCount());
                System.out.println("Upload is " + progress + "% done");
            int currentprogress = (int) progress;
                progressBar.setProgress(currentprogress);
            }
        }).addOnPausedListener(new OnPausedListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onPaused(UploadTask.TaskSnapshot taskSnapshot) {
                System.out.println("Upload is paused");
            }
        });
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-storage

13
推荐指数
1
解决办法
1万
查看次数

将缓存设置为Firebase存储中的文件

我在Firebase上运行了一个PWA.我的图片文件托管在Firebase存储上.我注意到我的浏览器没有为从存储系统加载的文件保存缓存.浏览器为每个页面刷新请求文件.它会导致不必要的延迟和流量.

网络统计

我的JS脚本从Firebase存储的下载链接加载文件,例如:https://firebasestorage.googleapis.com/v0/b/discipulado-7b14b.appspot.com/o/book3.png?val = media&token = 65b2cde7-c8a4 -45da-a743-401759663c17.

我可以缓存这些请求吗?

UPDATE

根据这些答案,我不应该使用Firebase存储来托管我的网站上的文件.只是为了管理用户的下载和上传.它是否正确?

javascript json caching firebase firebase-storage

13
推荐指数
3
解决办法
6054
查看次数

Firebase云存储规则可以针对Firestore数据进行验证吗?

我们是否可以使用Firestore数据授予或限制对Firebase Cloud Storage上托管的文件的访问权限?

我希望用作Firebase安全规则的例子

allow write: if get(/databases/mydbname/documents/guilds/$(guildID)).data.users[(request.auth.uid)] in ["Admin", "Member"];
Run Code Online (Sandbox Code Playgroud)

firebase firebase-security firebase-storage google-cloud-firestore

13
推荐指数
2
解决办法
1943
查看次数

Flutter web - 将图像文件上传到 Firebase 存储

在 flutter web 上,我从计算机中选择一个图像文件并获取一个 File 图像对象。然后我想将它上传到 Firebase 存储。对于 Android 和 iOS 版本的应用程序,我使用了 Firebase Cloud Function 和 http 多部分请求。它有效,但对于该应用程序的网络版本则无效。所以,

如何直接或通过 Cloud Functions 将 html 图像文件上传到 Firebase 存储?

file-upload image-upload google-cloud-functions firebase-storage flutter-web

13
推荐指数
4
解决办法
1万
查看次数

使用文件选择器将PlatformFile变成Flutter中的文件

我正在使用文件选择器插件从设备中选择文件。该文件是在 PlatformFile 的数据类型中选择的,但我想将该文件发送到 Firebase Storage,并且我需要一个常规文件。如何将 PlatformFile 转换为文件以便将其发送到 Firebase Storage?这是代码:

PlatformFile pdf;
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();

void _trySubmit() async {
    final isValid = _formKey.currentState.validate();
    if (isValid) {
      _formKey.currentState.save();
      final ref = FirebaseStorage.instance
          .ref()
          .child('article_pdf')
          .child(title + '-' + author + '.pdf');
      await ref.putFile(pdf).onComplete; // This throws an error saying that The argument type 'PlatformFile' can't be assigned to the parameter type 'File'
    }
  }

void _pickFile() async {
    FilePickerResult result = await FilePicker.platform.pickFiles(
      type: FileType.custom,
      allowedExtensions: ['pdf'],
    );
    if (result …
Run Code Online (Sandbox Code Playgroud)

filepicker flutter firebase-storage flutter-dependencies

13
推荐指数
1
解决办法
1万
查看次数

从Firebase存储中删除包含内容的文件夹

我可以轻松删除子引用中的文件,但是如何从Firebase存储中删除整个文件夹?

let postRef = FIRStorage.storage().reference().child("posts/folderName")
    postRef.deleteWithCompletion { (error) in
        print(error)
    }
Run Code Online (Sandbox Code Playgroud)

错误文件不存在.有任何想法吗?

firebase swift firebase-storage

12
推荐指数
1
解决办法
9472
查看次数

Firebase存储getDownloadUrl的令牌有效性

当使用FirebaseStorage的getDownloadUrl时,我对url(&token =)中的"token"有疑问.

https://firebasestorage.googleapis.com/v0/b/someapplication.appspot.com/o/images%2Fsample.png?alt=media&token=123456

从文档中可以看出,它返回了一个"长期存在"的下载网址 https://firebase.google.com/docs/reference/js/firebase.storage.Reference#getDownloadURL

问题是,我将fireUrl保存在FirebaseDatabase中

-chatroom
  - c1
    - m1
      -message: "Sent a photo"
      -photoUrl: downloadUrl here
Run Code Online (Sandbox Code Playgroud)

根据我的理解,它不是终身令牌,所以在某个时间点,令牌将无效.因此,当我在ImageView中显示此URL时,它将不会加载图像.

Picasso.with(context)
  .load(downloadUrl)
  .into(imageView)
Run Code Online (Sandbox Code Playgroud)

我明白我可以在firebase中使用这样的东西来生成一个新的.

StorageReference sr = getReferenceFromUrl(downloadUrl)
//pseudo-code
sr.getDownloadUrl().addOnSuccessListener((Uri newUri) => {
  Picasso.with(context)
  .load(newUri)
  .into(imageView)
});
Run Code Online (Sandbox Code Playgroud)

但!此过程总是会在此过程中获得新的下载URL.

那么,令牌会持续多久?此外,如果它不是生命周期令牌,我们应该如何正确存储下载URL?

firebase firebase-storage

12
推荐指数
1
解决办法
2664
查看次数

Picasso无法在StorageReference的onSuccess方法中加载图像

在运行时onStart()方法上尝试Picasso时,它通常使用控制台的下载链接从Firebase加载图像.

但是当我尝试在StorageReference onSuccess方法中加载图像时,它就无法工作.

这个类正在扩展片段:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == GALLERY_IN && resultCode == Activity.RESULT_OK) {
        isGranted = true;
        String path = FireStorage.retUID() + "/";
        showIndProgress();
        Uri uri = data.getData();

        StorageReference childPathRef = FireStorage.storageRef.child(path + uri.getLastPathSegment());
        childPathRef.putFile(uri)
                .addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
                        if(task.isSuccessful()) {
                            Picasso.with(mContext).load(task.getResult().getDownloadUrl())
                                    .into(profView);

                            Picasso.Builder build = new Picasso.Builder(mContext);
                            build.listener(new Picasso.Listener() {
                                @Override
                                public void onImageLoadFailed(Picasso picasso, Uri uri, Exception …
Run Code Online (Sandbox Code Playgroud)

java android firebase picasso firebase-storage

12
推荐指数
2
解决办法
955
查看次数

未捕获错误:Firebase选项中未定义存储存储桶.(WEB)

我试图在firebase存储上传文件(图像).但它控制了一个错误,说"未捕获的错误:Firebase选项中没有定义存储桶"..这是我的代码

const fileUpBtn = document.getElementById('photoUpload');
const selectFile = document.getElementById('selectedFile');
const postIt = document.getElementById('postIt');

fileUpBtn.addEventListener('click',function(){
selectFile.click();
}
);
selectFile.addEventListener('change',function(e){

var file=e.target.files[0];
var filename = file.name;
console.log('/postPic/'+filename);
var storeLocation = storage.ref('/postPic/'+filename);
var uploadTask=storeLocation.put(file);  
});
Run Code Online (Sandbox Code Playgroud)

我尝试允许任何用户存储,但这种情况也控制了这个错误.

在此输入图像描述

javascript firebase firebase-storage

12
推荐指数
1
解决办法
9073
查看次数