javascript - 如果javascript中出现循环,如何处理firebase ref?

标签 javascript node.js firebase google-cloud-functions firebase-storage

所以我正在做一个循环
我想知道什么是推荐的方法来处理您循环访问一堆 firebase 存储项目并且您将使用一堆 firebase 子引用的情况。我正在使用 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
});
基本上不希望存储引用以某种方式相互碰撞。什么是最好的选择?

最佳答案

firebase.storage() 返回相同的单例对象,该对象在初始化的 firebase 对象的生命周期内不会改变。访问它基本上不需要任何费用。如果你想重用那个对象,使用 const 在你的程序的顶层声明它更有意义,这样你的代码就会清楚地表明变量在分配后永远不会改变。
此外,我不会将其称为 storageRef ,因为 Reference 是 Cloud Storage 中的一种特殊类型的对象(您在调用 child() 时会得到它),我不想将其与这个单例对象混淆。

const storage = firebase.storage();
最后,您似乎在 Cloud Functions 中使用 JavaScript 客户端 SDK,这可能会出现问题。您应该考虑改用 nodejs SDK,这将更容易在 Cloud Functions 中使用,并且还为您提供对存储桶的完全管理员访问权限。如果要创建下载 URL,则应使用 different strategy

关于javascript - 如果javascript中出现循环,如何处理firebase ref?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64197214/

相关文章:

javascript - 对象属性的名称与 JavaScript 中的构造函数参数

Node.js Socket.io Heroku "no method ' 配置'"

javascript - 如何在 HTML 属性内的函数调用中将变量作为参数传递?

javascript - 从基类构造函数访问子构造函数

node.js - Sails 服务器未启动

node.js - EC2上的 Node 服务器只能通过IP地址工作,不能通过域名工作

firebase - ionic 应用程序 | Firebase Crashlytics 无法与崩溃报告配合使用?

Firebase 数据库区分在线和离线数据

JSON 到 Firebase

javascript - 平滑滚动(特定类别除外),但 fontawesome 图标不起作用