2017-01-26 9 views
0

Im пытается следить за документами firebase и загружать изображение в firebase с использованием полимера.Полимер Загрузить изображение в firebase

Это то, что у меня есть

_pushToFirebase: function() { 

     // SLUGGING THE NAME B4 WE EVEN SAVE IT!! 
     var sluggedname = this._slugify(this.$.crewName.value); 
     //FOR THE IMAGE 
     var file = this.$.crewProfilePic.value; 

     // Upload file 
     var uploadTask = this.$.query.storageRef.child('/crewprofileimages/' + file.name).put(file); 
     // Listen for state changes, errors, and completion of the upload. 
     uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED, // or 'state_changed' 
     function(snapshot) { 
      // Get task progress, including the number of bytes uploaded and the total number of bytes to be uploaded 
      var progress = (snapshot.bytesTransferred/snapshot.totalBytes) * 100; 
      console.log('Upload is ' + progress + '% done'); 
      switch (snapshot.state) { 
      case firebase.storage.TaskState.PAUSED: // or 'paused' 
       console.log('Upload is paused'); 
       break; 
      case firebase.storage.TaskState.RUNNING: // or 'running' 
       console.log('Upload is running'); 
       break; 
      } 
     }, function(error) { 
     switch (error.code) { 
      case 'storage/unauthorized': 
      // User doesn't have permission to access the object 
      console.log('You dont have permission to access object'); 
      break; 

      case 'storage/canceled': 
      // User canceled the upload 
      console.log('User cancelled upload'); 
      break; 

      case 'storage/unknown': 
      // Unknown error occurred, inspect error.serverResponse 
      console.log(error.code); 
      break; 
     } 
     }, function() { 
     // Upload completed successfully, now we can get the download URL 
     var downloadURL = uploadTask.snapshot.downloadURL; 
     }); 




     // PUSHING TO FIREBASE 
     this.$.query.ref.push({ 
     name: this.$.crewName.value, 
     description: this.$.crewDescription.value, 
     createddate: new Date().toString(), 
     creator: this.$.createcrewlogin.user.uid, 
     slug: sluggedname, 
     profileimage: downloadURL, 
     members: { 
      memberuserid: this.$.createcrewlogin.user.uid, 
     } 
     }); 
    }, 

и firebase запрос выглядит следующим образом

<!--STORE THE DATA IN CREWS DEFAULT SECTION--> 
    <firebase-query 
     id="query" 
     data="{{mycrews}}" 
     path="/crews"> 
    </firebase-query> 

Всякий раз, когда я ударил представить. Я получаю эту ошибку в моей консоли

cannot read property of 'child' of undefined Как это решить?

+0

, пожалуйста, предоставьте полную стопку ошибки и номер строки, которую она выбрасывает – ZuzEL

ответ

0

Может быть поздно, но с короткой ошибки, кажется, что элемент, который вы пытаетесь получить доступ не определен, то есть, вы должны получить доступ к нему, прежде чем обратиться к собственности (ребенок здесь)

Firebase-запрос имеет свойство пути, которое является местом, в котором вы можете сохранить данные. Если вы используете элементы полимеризации как запрос firebase, вам необходимо получить доступ к пути и изменить его, а затем нажать().

Таким образом, вместо

this.$.query.storageRef.child('/crewprofileimages/' + file.name).put(file); 

вы должны иметь что-то вроде:

this.$.query.path = yourPath ; 
this.$.query.put(file) ... etc 

Ошибка вы представили от этого, но для лучшего решения необходимо лучше ошибки должны быть предоставлены. Cheers

 Смежные вопросы

  • Нет связанных вопросов^_^