【发布时间】:2018-12-07 15:58:00
【问题描述】:
我必须将图像上传到 Firebase 存储。我没有使用网络版本的存储(我不应该使用它)。我正在使用 firebase 管理员。 没问题,我上传文件没有问题,我在变量“文件”中得到结果。
如果我访问 firebase 存储控制台,图像就在那里。好的。
return admin.storage().bucket().upload(filePath, {destination: 'demo/images/restaurantCover.jpg',
metadata:{contentType: 'image/jpeg'}
public: true
}).then(file =>{
console.log(`file --> ${JSON.stringify(file, null, 2)}`);
let url = file["0"].metadata.mediaLink; // image url
return resolve(res.status(200).send({data:file})); // huge data
}) ;
现在,我有一些问题。
为什么有这么多信息和这么多对象来响应
upload ()方法?查看巨大的对象,我在元数据中发现了一个名为mediaLink的属性,它是图像的下载 url。但是……为什么 url 与 firebase 显示的不同?为什么我找不到
downloadURL属性?如何获取firebase的url?
- 如果我使用 mediaLink url,不同的 url 有什么问题吗? (从 ios 和 Web 客户端读取、更新)
【问题讨论】:
-
您找到解决方案了吗?我正在使用与 nodejs 相同的设置(firebase 管理员),并且当前将 mediaLink URL 存储在 mongodb 中作为参考。
-
@PascalLamers 还没有
-
我也有这个问题,我认为这与管理 api 与谷歌云重叠的事实有关。回调与我没有设置的谷歌云中的存储系统有关,并且没有返回任何关于 firebase :/.现在我正在梳理firebase链接并使用模板文字来填写相关信息。使用模板中的“目标”,您必须将正斜杠替换为“%2F”。我忽略了令牌查询,因为我认为它对公共对象没有任何影响。希望 firebase 能把它修复成更像客户端 sdk :(
标签: javascript firebase google-cloud-storage firebase-storage