当前位置: 首页 > 知识库问答 >
问题:

Firebase getDownloadURL从存储无法设置Img Src

翟誉
2023-03-14

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

var storage = firebase.storage();
var storageRef = storage.ref();
var imgRef = storageRef.child('profile-pictures/1.jpg');
var pulledProfileImage = imgRef.getDownloadURL();
dataArray.push(pulledProfileImage)
cell1.innerHTML = '<img id="profileImage" src="'+dataArray[0]+'">';

当我在代码执行后检查源代码时,src被设置为[Object,Object]。我还有一个记录结果的脚本,当它这样做时,如下所示:

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

奇怪的是,如果我让控制台通过调用console.log(array[0].wb)从上面的列表中打印出一个不同的属性,例如wb,它会完美地打印出false。每个布尔值似乎都很好,只是不是字符串或数字。

作为参考,我的存储结构看起来是这样的:

----root
  |
  |------profile-pictures
             |---------------------- img1.png <--the console is trying to print this one
             |
             |---------------------- img2.png 
----root
  |
  |----folder1
          |
          |
          |----subfolder1
                   |
                   |
                   |----subfolder2
                           |
                           |
                           |--------img1.png
                           |
                           |--------img2.png

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

共有1个答案

东和怡
2023-03-14

这里的诀窍是getDownloadURL是一个异步函数,它恰好返回一个promise(根据文档):

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);
});

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

 类似资料:
  • 在我的保险库和领事整合我有以下秘密引擎enble 以以下错误结束 待覆盖的Vault-Value其他:待覆盖的Vault-Value已成功连接到数据库 在上下文初始化期间-取消刷新尝试:org.springframework.beans.factory.BeanCreationException:创建名为“demo application”的bean时出错:调用init方法失败;嵌套异常为java

  • 我正在尝试执行以下操作以避免稍后未选中的转换: 强制取消行上未选中得强制转换: 我如何做到这一点而不需要抑制?

  • 我使用IntelliJ IDEA15,但有一个自动保存的问题。例如,我做了一个新的配置,例如Show the line number。当我关闭IntelliJ并重新打开我的IDE时,它不保存我的配置,并向我显示以下消息: 无法保存设置:无法保存设置。请重新启动IntelliJ IDEA

  • 尝试在Spring Boot项目中设置Memcache,但它不起作用。我甚至尝试设置默认缓存(ConcurrentMapCacheManager),但效果并不理想。 我读过的每个教程(甚至是Spring官方)都说这种配置足以设置缓存 缓存配置: 缓存使用: 波姆。xml 是否有可能某些依赖项与spring缓存依赖项冲突?

  • 但是他们都不起作用,谁能给我提出任何替代的解决办法。 提前感谢…

  • 因此,我正在查看来自Google的示例代码,但我无法确定如何激活配置文件? https://cloud.google.com/appengine/docs/flexible/nodejs/using-cloud-storage 示例代码: 但是,当您阅读https://github.com/googleCloudplatform/google-cloud-node/blob/master/docs