有没有一种方法可以使用flatter重命名firebase存储中的文件?

有没有一种方法可以使用flatter重命名firebase存储中的文件?,firebase,flutter,google-cloud-storage,firebase-storage,file-rename,Firebase,Flutter,Google Cloud Storage,Firebase Storage,File Rename,我正在根据时间戳上传文件。现在当用户更新信息时。我必须根据当前的时间戳更新文件名。那么,是否可以更新文件名 注意:我们可以删除旧信息并创建新信息。 但是,我想知道是否有任何编辑选项。简单的回答是,在文件名上载到Firebase存储后,没有API(即使没有使用FLIFT),也没有编辑文件名的选项 但理论上有一些变通办法: 对于iOS实现,A收到了一个答案,您可以先下载映像,然后从存储器中删除它,然后用新的时间戳重新加载它,正如您在问题中所指出的那样 但我将如何实现这种情况是,您总是将Fireb

我正在根据时间戳上传文件。现在当用户更新信息时。我必须根据当前的时间戳更新文件名。那么,是否可以更新文件名

注意:我们可以删除旧信息并创建新信息。


但是,我想知道是否有任何编辑选项。

简单的回答是,在文件名上载到Firebase存储后,没有API(即使没有使用FLIFT),也没有编辑文件名的选项

但理论上有一些变通办法:

  • 对于iOS实现,A收到了一个答案,您可以先下载映像,然后从存储器中删除它,然后用新的时间戳重新加载它,正如您在问题中所指出的那样

  • 但我将如何实现这种情况是,您总是将Firebase中的存储模块与Firestore结合使用。因此,您可以在Firestore中链接图像,并在其中的对象中更新时间戳。这里有一个例子:

{
“image_path”:“/images/1595765336.jpg”//文件名包含上载时的原始时间戳。
“timestamp:”1595765336//现在您可以只更新此值,并且对图像的引用保持不变。
//当然,您可以根据需要添加其他参数。
}

第二个选项可能是更好的解决方案,当您不想从用户那里消耗太多数据时,因为您只更新时间戳而不是整个图像,即使它保持不变。

简单的回答是,在文件名上载到Firebase存储后,没有一个选项可以编辑文件名,因为没有API(即使没有颤振)

但理论上有一些变通办法:

  • 对于iOS实现,A收到了一个答案,您可以先下载映像,然后从存储器中删除它,然后用新的时间戳重新加载它,正如您在问题中所指出的那样

  • 但我如何实现这种情况是,您总是将Firebase中的存储模块与Firestore结合使用。因此,您将Firestore中的图像链接起来,然后只更新其中一个对象中的时间戳。下面是一个示例:

{
“image_path”:“/images/1595765336.jpg”//文件名包含上载时的原始时间戳。
“timestamp:”1595765336//现在您可以只更新此值,并且对图像的引用保持不变。
//当然,您可以根据需要添加其他参数。
}

第二个选项可能是更好的解决方案,当您不想消耗用户的太多数据时,因为您只更新时间戳而不是整个图像,即使它保持不变。

如另一个答案中所述,文件名不能直接更改

一个选项是下载文件,删除它,然后用新名称上传一个新文件

另一个选择是利用云功能来执行该任务

前两个选项占用大量带宽,如果文件很大或更改频繁,可能会导致成本上升

像文件名这样的东西可以是动态的,打破文件名和文件本身之间的链接通常是一种好的做法

在编写文件时,我会创建一个通用文件名,然后将面向用户的名称存储在Firestore中

firestore
   images (collection)
      image_0 (auto-generated id created with Swift .addDocument or Java .add for example)
         name: "Picture of a Leroy"
         url: "www....."
         timestamp: "20200722"
      image_1
         name: "Picture of Sally"
         url: "www....."
         timestamp: "20200725"

正如您所看到的,使用这种结构,您可以轻松地更改文档名称,而开销或成本非常小,而且速度非常快。

如另一个答案中所述,文件名不能直接更改

一个选项是下载文件,删除它,然后用新名称上传一个新文件

另一个选择是利用云功能来执行该任务

前两个选项占用大量带宽,如果文件很大或更改频繁,可能会导致成本上升

像文件名这样的东西可以是动态的,打破文件名和文件本身之间的链接通常是一种好的做法

在编写文件时,我会创建一个通用文件名,然后将面向用户的名称存储在Firestore中

firestore
   images (collection)
      image_0 (auto-generated id created with Swift .addDocument or Java .add for example)
         name: "Picture of a Leroy"
         url: "www....."
         timestamp: "20200722"
      image_1
         name: "Picture of Sally"
         url: "www....."
         timestamp: "20200725"

如您所见,使用这种结构,您可以轻松地更改文档名称,开销或成本非常小,而且速度非常快。

Firebase SDK不提供移动或重命名操作。您需要编写代码来下载文件,使用新名称重新上传文件,然后删除原始文件。如果这样做,效果会更好不要依赖存储中文件的名称。相反,更容易管理数据库中文件的数据。Firebase SDK不提供移动或重命名操作。您必须编写代码下载文件,使用新名称再次上载文件,然后删除原始文件。如果不依赖存储中文件的名称,效果会更好。相反,管理数据库中文件的数据更容易。