首页 > 解决方案 > 如何使用 firebase admin sdk 删除 Firebase Storage 中的文件

问题描述

我正在开发一个 android 应用程序,一个使用烧瓶和 firebase 的网络服务器。当客户端应用程序上传图像文件时,Web 服务器会在数据库中保存一个图像 url。

然后,客户端应用程序从 firebase 存储中获取图像 url 并打开图像。

所以我的网络服务器和应用程序不知道文件名。但是,要删除存储中的文件,需要知道文件的名称。只有我能得到的是文件网址。

我的网络服务器如何使用文件 url 删除文件?

以下代码用于使用文件名删除文件。我想将此代码更改为使用文件 url 删除文件。

bucket = storage.bucket('<BUCKET_NAME>')

def deleteFile(imageName):
    try:
        bucket.delete_blob('profile_images/' + imageName)
        bucket.delete()
        return True
    except Exception as e:
        print(e)
        return False

标签: node.jsfirebasegoogle-cloud-storagefirebase-storagefirebase-admin

解决方案


Firebase Admin SDK 中的 Storage 客户端是 Google Cloud Storage 的 Node.js 客户端的瘦包装器。据我所知,后者没有办法将下载 URL 映射回File.

这意味着您必须使用 找到来自客户端的路径FirebaseStorage.getReferenceFromUrl(),然后将该路径传递给您的 Web 服务器。这样,JavaScript 代码就可以使用该路径来创建对File.


推荐阅读