【问题标题】:(Firebase Storage) hosted image doesnt display on iPhone browser(Firebase 存储)托管图像不显示在 iPhone 浏览器上
【发布时间】:2016-07-25 09:36:28
【问题描述】:

尝试显示来自 Firebase 存储和数据库的图像和链接。在桌面浏览器和 android 设备上完美运行,但在 iOS 设备(移动 safari)上不显示。我在这里有什么明显的遗漏或者可能是一个错误吗?页面正确显示,只有图片链接应位于的空间。

代码在下面提取。显然,与其他浏览器一样,Firebase 都已正确初始化,因此不包含脚本标签。

<div class="livewire1">

<a href="" target="_blank" ><img id="myimg" width="100%" height="100%"/></a>


<script>

  var anchors = document.querySelectorAll('a');
  Array.prototype.forEach.call(anchors, function (element, index) {
      var dbRef1 = firebase.database().ref().child('sponsorlink/hole01');
      dbRef1.on('value', snap => element.href = snap.val());

  });

  var storageRef = firebase.storage().ref();
  var imagesRef = storageRef.child('banner_ads');
  var fileName = 'ban_01.png';
  var bannerRef = imagesRef.child(fileName);

  bannerRef.getDownloadURL().then(function(url) {
      var banner1 = url;
      document.getElementById('myimg').src = banner1;

  }).catch(function(error) {

  });
</script>
</div>

谢谢

【问题讨论】:

  • 您是否在调试器中单步执行了代码?它是否进入then() 块?那时的url 是什么?
  • @FrankvanPuffelen,嗨,dbRef1.on('value', snap => element.href = snap.val());在 safari 的调试器中,这会导致意外令牌“>”的错误,这也是控制台中打印的 url 的图像,不确定这是否是您的意思,但是 Image

标签: iphone firebase firebase-storage


【解决方案1】:

感谢 Frank van Puffelen 间接解决了我的问题,并检查了 safari mobile 上的调试器,但 snap 值上出现了意外的语法 ">" dbRef1.on('value', snap =&gt; element.href = snap.val()); 似乎是导致存储映像无法加载的原因。

Safari 和 Internet Explorer 不支持的 ES6 箭头功能。 AngularJS - SyntaxError: Unexpected token '>'error in Safari Browser

解决如下:

dbRef1.on('value', function(snap) { element.href = snap.val()});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 2017-12-01
    • 2021-11-25
    • 1970-01-01
    相关资源
    最近更新 更多