如何解决从firebase存储下载json文件
让我重申我的问题。我有一个 vue.js 应用程序,可将 json 文件上传到我的 firebase 存储中的存储桶。我需要下载文件以在我的应用程序中使用,但是当我尝试从 firebase 存储下载 json 文件时,我收到“未捕获(承诺)未定义”错误。
const storage = firebase.storage()
const storageRef = storage.ref()
const objectRef = storageRef.child('BUCKET/FILE_NAME.json')
objectRef.download(function (err,contents) {
if (!err) {
var jsObject = JSON.parse(contents.toString('utf8'))
console.log('jsObject ',jsObject)
}
})
更新:这是我的全部代码。我检查数据库中的活动课程。如果找到,我想从存储中获取该课程并从其内容中构建我的对象。
getActiveCourse({ dispatch },{ cid,user }) {
return new Promise((res,rej) => {
let userActiveCourse = []
let archivedUserCourses = []
let currentCourseRef = db.collection('currentcourses')
currentCourseRef = currentCourseRef.where('cid','==',cid)
currentCourseRef = currentCourseRef.where('user',user.uid)
currentCourseRef.get().then(snapshot => {
if (!snapshot.empty) {
snapshot.forEach(doc => {
let course = doc.data()
course.id = doc.id
if (course.status == 'active') {
// WE FOUND AN ACTIVE COURSE. Now LETS DOWNLOAD IT AND READ IT INTO AN ARRAY
const storage = firebase.storage()
const storageRef = storage.ref()
const objectRef = storageRef.child('BUCKET/FILE_NAME.json')
objectRef.download(function (err,contents) {
if (!err) {
var jsObject = JSON.parse(contents.toString('utf8'))
}
})
userActiveCourse.push(course.course)
} else {
archivedUserCourses.push(course.course)
}
})
}
}).then(() => {
dispatch('addUserActiveCourse',userActiveCourse)
dispatch('addArchivedUserCourses',archivedUserCourses)
res()
}).catch(() => rej())
})
},
解决方法
启动 Firebase 项目的步骤
打开 Firebase 控制台。 点击“创建新项目”。
- “创建项目”窗口打开。
- Firebase 控制台的开始屏幕随即打开。
- “输入应用详细信息”屏幕随即打开。
- 按照屏幕上的说明继续配置。
- 创建项目后检查服务器密钥。
- 暂时将服务器密钥保存在本地驱动器上。
现在我们已经安装了依赖项并创建了一个 Firebase 项目,只需创建一个 index.js 文件并粘贴以下代码。别着急,我们会详细查看代码,了解发生了什么。
,这里是其他需要帮助解决此类问题的人的解决方案。
const storage = firebase.storage()
const storageRef = storage.ref()
const objectRef = storageRef.child(course.storageRef)
objectRef.getDownloadURL().then((url) => {
axios.get(url).then((response) => {
let activeCourse = response.data
userActiveCourse.push(activeCourse)
})
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。