当存储达到特定限制时触发firebase云功能

时间:2020-06-26 04:41:41

标签: firebase google-cloud-functions

我在存储照片的存储桶中有一个文件夹。假设此文件夹的限制为1500张照片。当达到此限制时,我要删除500张照片,因此现在只剩下1000张照片。有什么方法可以获取文件夹中的全部项目,然后删除500张最旧的照片?还是应该在实时数据库中创建参考并将照片参考存储在那里。 我刚接触Firebase,实际上想在该文件夹中实现照片队列。

3 个答案:

答案 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上进行任何管理。