这与this线程有关,但这是我遇到的一个新问题。我正在尝试将图像添加到HTML中的表格单元格中,并且我将Firebase存储与Firebase数据库结合使用。我的想法是从数据库中的gs://xxxxxxxx
路径获取图像并在js中使用它,但我在控制台中收到此错误:
Firebase存储:索引0处的
refFromURL
中的参数无效:预期的完整网址但是有了子路径,请改用ref。“
所以似乎url_ul
路径无效。例如,如果我引入'gs:// xxxxxxxx'而不是url_ul
,它就像魅力一样。如果我将值url_ul
作为文本读取,我就会得到那条路径。但是,如果我在refFromURL('url_ul')
我有以下js代码:
var rootRef = firebase.database().ref().child("Test");
var storage = firebase.storage();
rootRef.on("child_added", snap => {
var headline = snap.child("headline").val();
var url_ul = snap.child("imageUrl").val();
var storageRef = storage.refFromURL('url_ul').then(function(url) {
var test = url;
document.querySelector('img').src = test;
}).catch(function(error) {});
$("#table_body").append("<tr><td>" + headline + "</td><td><img src='test' alt='' border=3 height=100 width=100></td></tr>");});
数据库看起来像这样:
所以有一个gs:// xxxxx路径,根据Firebase文档,它应该可以正常工作:
//从Google云端存储URI创建引用 var gsReference = storage.refFromURL('gs://bucket/images/stars.jpg')
知道这里有什么问题吗?
为了使事情更清楚:
这条线完美无缺:
var storageRef = storage.refFromURL("gs://nameofapp.appspot.com/armonii_culturale.png").getDownloadURL().then(function(url) ...
但这个不是
var storageRef = storage.refFromURL("url_ul").getDownloadURL().then(function(url) ...
这很奇怪,因为“url_ul”应包含相同的值。