在javascript中出现循环的情况下,如何处理firebase-ref



所以我正在处理一个循环我想知道有什么推荐的方法来处理这样的情况,即你正在循环浏览一堆firebase存储项目,并且你将使用一堆firebasechild-ref。我使用的是Node.js 12.18.2,我正在为firebase云函数编写函数,我将遍历存储在firebase存储中的一堆文件,我想在编写代码时记住变量提升。

//should I put the ref here? and ofc, which one is better to use var or let?
let storageRef = firebase.storage();
var storageRef = firebase.storage();
item.forEach(element => {
// or use seperate storage ref for each firebase storage item
let storageRef = firebase.storage();
var storageRef = firebase.storage();
let storageRef.child("images/stars.jpg").getDownloadURL(); //bla bla bla
});

基本上不希望存储ref以某种方式相互冲突。什么是最好的选择?

firebase.storage()返回相同的singleton对象,该对象在初始化的firebase对象的生存期内不会更改。访问它基本上不需要任何成本。如果你想重用该对象,那么使用const在程序的顶层声明它更有意义,这样你的代码就可以清楚地表明,变量在被分配后永远不会改变。

此外,我不会称之为storageRef,因为引用是云存储中的一种特殊类型的对象(当您调用child((时会得到它(,我不想将其与这个singleton对象混淆。

const storage = firebase.storage();

最后,看起来您在云函数中使用JavaScript客户端SDK,这可能会有问题。您应该考虑使用nodejs SDK,这将更容易在Cloud Functions中使用,并且还可以让您对存储桶进行完全的管理员访问。如果你想创建一个下载URL,你应该使用不同的策略。

最新更新