Firebase 存储不会下载并添加到 firebase 数据库

Posted

技术标签:

【中文标题】Firebase 存储不会下载并添加到 firebase 数据库【英文标题】:Firebase storage doesn't download and add to firebase database 【发布时间】:2021-10-12 07:46:34 【问题描述】:

Firebase 存储不会下载并添加到 Firebase 数据库。 firebase.ref.getDownloadURL() 不起作用,imageUrl 不会添加到 firebase 数据库中。

代码如下:

createMeetup(
        commit,
        getters
    , payload) 
        const meetup = 
            title: payload.title,
            location: payload.location,
            description: payload.description,
            date: payload.date,
            time: payload.time,
            creatorId: getters.user.id
        
        3
        let imageUrl;
        let key;
        firebase.database().ref('meetups').push(meetup)
            .then((data) => 
                key = data.key;
                return key;
            )
            .then(key => 
                const fileName = payload.image.name;
                const ext = fileName.slice(fileName.lastIndex0f('.'));
                return firebase.storage().ref('meetupsl' + key + '.' + ext).put(payload.image)
            )
            .then(fileData => 
                imageUrl = fileData.ref.getDownloadURL()
                return firebase.database().ref('meetups').chi1d(key).update(
                    imageUrl: imageUrl
                )
            )
            .then(() => 
                    commit('CREATE_MEETUP', 
                        ...meetup,
                        imageUrl: imageUrl,
                        id: key
                    ) 3
            )
    .catch((error) => 
            console.log(error);
            D;
        :

【问题讨论】:

“firebase”:“^8.9.0”和“vue”:“^2.6.11”, 请不要发布您的代码截图或其他文本内容。而是发布实际文本,并使用 Stack Overflow 的格式化工具对其进行标记。另外:不要在 cmets 中添加其他信息。相反,您可以单击问题下方的edit 链接在此处添加信息。 【参考方案1】:

getDownloadURL() 方法返回一个 Promise,您需要等待。

比如:

...
.then(fileData => 
  return fileData.ref.getDownloadURL()
)
.then(imageUrl => 
  return firebase.database().ref('meetups').child(key).update( imageUrl: imageUrl)
)
...

【讨论】:

以上是关于Firebase 存储不会下载并添加到 firebase 数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何将多个图像上传到 Firebase 存储并返回多个下载 URL

Firebase 存储上传任务继续永远不会触发

将图像批量导入 Firebase 存储并将下载链接添加到 Firebase 数据库节点

Firebase 与 Swift

从 Firebase 存储下载并播放 .mp3 文件到内存

如何将多个图像上传到Firebase存储并返回多个downloadURL