如何使用Firebase管理员SDK删除Firebase存储中的文件

时间:2018-08-09 12:16:52

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

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

然后,客户端应用获取图像URL并从Firebase存储中打开图像。

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

我的Web服务器如何使用文件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

1 个答案:

答案 0 :(得分:0)

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

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