如何重命名Firebase存储和数据库中的密钥

时间:2017-12-10 21:57:14

标签: firebase firebase-realtime-database firebase-storage

我正在使用Firebase存储将一些照片上传为1,2,3等。然后我使用Firebase数据库以相同的方式保存这些照片的下载URL。我想知道一旦我删除其中一个图像,我应该如何处理文件。例如,我们说我删除了图像2并且有7个图像。我应该如何重命名3,4,5,6,7的键并使它们成为2,3,4,5,6?!

2 个答案:

答案 0 :(得分:1)

最好的建议是不要使用这样的序号,因为它们不能很好地扩展。您当前的问题是其中的许多问题之一。有关更多信息,请参阅https://firebase.googleblog.com/2014/04/best-practices-arrays-in-firebase.html

建议的方法是使用Firebase数据库推送ID来命名/标识文件。您可以使用ref.push().keyref.push().getKey()轻松获得此功能。这些ID始终递增,但不是顺序的。虽然可读性稍差,但它们可以更好地扩展,可以生成脱机的原因,并且在删除文件/节点时不必重新生成其他ID。

另见Mike的答案:Creating a new unique path to Firebase Storage, coupled with storing it in the database?

答案 1 :(得分:0)

FireD函数onDelete for RTD

https://firebase.google.com/docs/functions/database-events?hl=es-419

不允许用户在存储中删除但允许用户删除RTD中的引用。然后函数将处理后端逻辑。

请确保您的数据结构正确,听起来像一个数组,您应该允许按键,而不是使用地图