Firebase存储-如何使用Node.js从存储中删除文件?

时间:2019-01-08 10:12:05

标签: node.js firebase google-cloud-functions firebase-storage firebase-admin

我想使用node js删除firebase存储中的文件夹,因为这是firebase函数。

例如:

storageRef.child(child1).child(child2).delete();

类似的东西,但是Firebase文档什么也没说。

另一个问题: 当初始化存储文档节点js时需要我的admin json,但是实时数据库不希望这个奇怪吗?

4 个答案:

答案 0 :(得分:1)

查看Google Cloud Storage的Node.js客户端API Reference,尤其是delete()File方法。

答案 1 :(得分:1)

可能会延迟,但是至少在Web上(基本上就是您所需要的),有新的API可以删除整个文件夹。

我测试了删除里面有2张图片的文件夹,它可以正常工作。然后,我尝试了一个包含以下内容的文件夹-A:文件夹-B +图片-A。文件夹-B内部也有图片-B;它仍然删除了文件夹A及其所有内容。

解决方案:

proc sgplot data= FrequencyAdd(where=(count = 6 and person = "Jim"));   
    scatter x=adm_dt y=Brand/ group = Brand freq=Freq_Flag;
run;

我在官方文档中找不到此文件(也许是真的新API),但是在很酷的文章中我找到了解决方案: Automatically delete your Firebase Storage Files from Firestore with Cloud Functions for Firebase

答案 2 :(得分:0)

您可以使用Node.js和客户端(只要用户具有写权限)就可以这样做:

// Create a reference to the file to delete
var desertRef = storageRef.child('images/desert.jpg');

// Delete the file
desertRef.delete().then(function() {
  // File deleted successfully
}).catch(function(error) {
  // Uh-oh, an error occurred!
});

在Firebase网站上查看此信息: how to delete files Firebase-storage

答案 3 :(得分:0)

import { storage } from "./firebaseClient";
import { bucket } from "./firebaseServer";

//Let's assume this is the URL of the image we want to delete
const downloadUrl =  "https://storage.googleapis.com/storage/v1/b/<projectID>.appspot.com/o/<location>?"

//firebase delete function
const deleteImages = async ({ downloadUrl }) => {
    const httpsRef = storage.refFromURL(downloadUrl).fullPath;
    return await bucket
        .file(httpsRef)
        .delete()
        .then(() => "success")
        .catch(() => "error")
}

//call the deleteImages inside async function
const deleteStatus = await deleteImages({ downloadUrl: oldImage });
console.log(deleteStatus)  //=> "success"