Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase getDownloadURL从存储器无法设置Img Src_Javascript_Firebase_Firebase Storage - Fatal编程技术网

Javascript Firebase getDownloadURL从存储器无法设置Img Src

Javascript Firebase getDownloadURL从存储器无法设置Img Src,javascript,firebase,firebase-storage,Javascript,Firebase,Firebase Storage,我试图复制这个问题的结果。我能够对有效的数据库子级调用getDownloadURL(),但它返回的结果似乎无法设置为IMG的src。 这是我当前用于尝试获取下载URL的代码: var storage = firebase.storage(); var storageRef = storage.ref(); var imgRef = storageRef.child('profile-pictures/1.jpg'); var pulledProfileImage = imgRef.getDown

我试图复制这个问题的结果。我能够对有效的数据库子级调用
getDownloadURL()
,但它返回的结果似乎无法设置为IMG的
src
。 这是我当前用于尝试获取下载URL的代码:

var storage = firebase.storage();
var storageRef = storage.ref();
var imgRef = storageRef.child('profile-pictures/1.jpg');
var pulledProfileImage = imgRef.getDownloadURL();
然后,我通过执行以下操作将
pulledProfileImage
推入数组:

dataArray.push(pulledProfileImage)
将数组(以及其他信息)发送给使用数据填充表的函数。此处使用以下代码引用图像本身:

cell1.innerHTML = '<img id="profileImage" src="'+dataArray[0]+'">';
奇怪的是,如果我让控制台通过调用
console.log(Array[0].Wb)
从上面的列表中打印出一个不同的属性,比如说,
Wb
它可以完美地打印出
false
。。。。每个布尔值似乎都很好,只是不是字符串或数字

作为参考,我的存储结构如下所示:

0:C
Hc:false
N:2
Pa:null
Wb:false
ja:null
na:"https://firebasestorage.googleapis.com/v0/b/app-name-da7a1.appspot.com/..."
s:null
----root
  |
  |------profile-pictures
             |---------------------- img1.png <--the console is trying to print this one
             |
             |---------------------- img2.png 

基本上,我的代码导航到子文件夹2,提取子值,然后进入存储并尝试从那里提取它们

这里的诀窍是
getDownloadURL
是一个异步函数,恰好返回一个承诺(根据):


这将在本地工作,但URL列表不会在所有浏览器之间同步。相反,您想要的是使用数据库来同步URL,就像我们在Zero-to-App(,)中所做的那样。

这里的技巧是
getDownloadURL
是一个异步函数,恰好返回一个承诺(根据):


这将在本地工作,但URL列表不会在所有浏览器之间同步。相反,您需要的是使用数据库来同步URL,就像我们在Zero-to应用程序(,)中所做的那样。

请共享此链接。您现在分享的片段留给了我们太多的想象。代码可能还取决于数据库的JSON结构,因此也要包含一个具有代表性的代码片段(作为文本,没有截图)。Frank,感谢您的回复。我改变了这个问题——现在的邮件问题是,只有
boolean
值可以在引用时打印,但是
numbers
strings
不能打印。谢谢你还是没有和我分享。如果你在问题中包含这样的内容,你就更有可能得到帮助。弗兰克,你能检查一下编辑过的问题吗?谢谢请与我们分享。您现在分享的片段留给了我们太多的想象。代码可能还取决于数据库的JSON结构,因此也要包含一个具有代表性的代码片段(作为文本,没有截图)。Frank,感谢您的回复。我改变了这个问题——现在的邮件问题是,只有
boolean
值可以在引用时打印,但是
numbers
strings
不能打印。谢谢你还是没有和我分享。如果你在问题中包含这样的内容,你就更有可能得到帮助。弗兰克,你能检查一下编辑过的问题吗?谢谢这个脚本在PHP中可用吗?php是一种在您自己的服务器上运行的后端语言,而我们展示的是直接在客户机上运行的JavaScript。它们是两个完全不同的东西,所以不能直接比较?php是一种在您自己的服务器上运行的后端语言,而我们展示的是直接在客户机上运行的JavaScript。他们是两个完全不同的东西,所以这不是一个直接的比较。
----root
  |
  |----folder1
          |
          |
          |----subfolder1
                   |
                   |
                   |----subfolder2
                           |
                           |
                           |--------img1.png
                           |
                           |--------img2.png
var storage = firebase.storage();
var storageRef = storage.ref();
var imgRef = storageRef.child('profile-pictures/1.jpg');
// call .then() on the promise returned to get the value
imgRef.getDownloadURL().then(function(url) {
  var pulledProfileImage = url;
  dataArray.push(pulledProfileImage);
});