无法将图像上传到Firebase存储

时间:2016-07-25 01:58:52

标签: javascript html5 firebase polymer firebase-storage

首先,我使用Polymer cli初始化Polymer app-drawer-template,然后将Firebase存储添加到Web应用程序。然后我将文件上传代码添加到其中一个页面(该页面的代码见下文)。但是我收到以下错误(这会阻止文件上传,也不会更新进度条),

  

未捕获的TypeError:无法读取null

的属性'addEventListener'

以及

  

未捕获的TypeError:无法读取未定义的属性“instanceCount”

这是我的代码。

<link rel="import" href="../bower_components/polymer/polymer.html">

<dom-module id="my-market">

  <template>

    <style>
      :host {
        display: block;
        padding: 10px;
      }
      paper-card.top{
        margin-top: 8px;
        width: 100%;
        padding-bottom: 16px;
      }
    </style>

    <paper-card heading="Welcome to the Market!">
      <div class="card-content">
        <h4>Upload a photo of your item</h4>
        <!--uplod image-->
        <input type="file" value="upload" id="fileUpload"/>
        <progress value="0" max="100" id="uploader">0%</progress>
      </div>
    </paper-card>

  </template>

  <script>

   //File upload script to Firebase storage
  var uploader = document.getElementById('uploader');
  var fileButton = document.getElementById('fileUpload');

  //File selection listener
  fileButton.addEventListener('change', function(a) {

    //Get image
    var file = a.target.files[0];

    //create a storage reference
    var storageRef = firebase.storage().ref('images/' + file.name);

    //store the image
    var task = storageRef.put(file);

    //notify the user of upload status
    task.on('state_changed',

        function progress(snapshot) {
          var percentage = (snapshot.bytesTransferred/snapshot.totalBytes)*100;
          uploader.value = percentage;
        },

        function error(err) {

        },

        function complete() {

        }

    );

  });

  </script>


  <script>

    Polymer({

      is: 'my-market'

    });

  </script>

</dom-module>

我还尝试将Firebase存储的代码放在index.html文件的标记中,但它仍然无效。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

这是修复。

只需将您的脚本放在Polymer({})中;功能

{{1}}

并为文件输入指定on-change属性为“upld”。