我在存储照片的存储桶中有一个文件夹。假设此文件夹的限制为1500张照片。当达到此限制时,我要删除500张照片,因此现在只剩下1000张照片。有什么方法可以获取文件夹中的全部项目,然后删除500张最旧的照片?还是应该在实时数据库中创建参考并将照片参考存储在那里。 我刚接触Firebase,实际上想在该文件夹中实现照片队列。
答案 0 :(得分:1)
是的,您应该使用数据库来存储对存储桶中文件的引用。使用与您一起存储的文件有关的任何数据,数据库将更容易查询。存储桶不是查询年龄的好方法。
答案 1 :(得分:0)
您可以在listAll()
中Reference
。这是Documentaion。然后,您可以使用每个函数迭代所有元素并获得长度。
代码类似于:
// Create a reference under which you want to list
var storageRef = firebase.storage().ref();
var listRef = storageRef.child('YOUR_FOLDER');
var items = 0;
// Find all the prefixes and items.
listRef
.listAll()
.then(function (res) {
res.prefixes.forEach(function (folderRef) {
// All the prefixes under listRef.
// You may call listAll() recursively on them.
});
res.items.forEach(function (itemRef) {
// All the items under listRef.
items++;
});
console.log(items);
})
.catch(function (error) {
// Uh-oh, an error occurred!
});
在此示例中,我创建了一个item变量作为一个计数,但是您可以将所有元素压入数组,然后获取lenght()。
答案 2 :(得分:0)
创建有关存储数据和计数的参考(如果可能) 一旦计数为1500,就删除照片
或者,如果有任何方法可以在云功能内部获取存储信息,请使用为您执行此操作的云功能。这样您就不想在RTDB上进行任何管理。