我正在使用Firebase存储将一些照片上传为1,2,3等。然后我使用Firebase数据库以相同的方式保存这些照片的下载URL。我想知道一旦我删除其中一个图像,我应该如何处理文件。例如,我们说我删除了图像2并且有7个图像。我应该如何重命名3,4,5,6,7的键并使它们成为2,3,4,5,6?!
答案 0 :(得分:1)
最好的建议是不要使用这样的序号,因为它们不能很好地扩展。您当前的问题是其中的许多问题之一。有关更多信息,请参阅https://firebase.googleblog.com/2014/04/best-practices-arrays-in-firebase.html。
建议的方法是使用Firebase数据库推送ID来命名/标识文件。您可以使用ref.push().key
或ref.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中的引用。然后函数将处理后端逻辑。
请确保您的数据结构正确,听起来像一个数组,您应该允许按键,而不是使用地图