无法将图片上传到 Firebase 存储

Cannot upload images to Firebase Storage

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

Uncaught TypeError: Cannot read property 'addEventListener' of null

还有

Uncaught TypeError: Cannot read property 'instanceCount' of undefined

这是我的代码。

<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 文件的标记中,但它仍然无法正常工作。有什么建议吗?

这是修复。

只需将您的脚本放入 Polymer({});函数。

Polymer({

  is: 'my-market',

  upld: 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);

 }

});

并将文件输入的on-change属性指定为"upld"。