Загрузите несколько изображений в Firebase Storage, а затем создайте сообщение - PullRequest
0 голосов
/ 11 ноября 2018

У меня есть файл ввода, из которого я добавляю серию изображений в массив с именем var immaginiPost = []. Затем я хочу получить все эти изображения и добавить их в хранилище Firebase, а затем, как только они будут загружены, получить также заголовок и содержимое сообщения из двух других текстовых входов и создать сообщение в базе данных Firebase, где я также выкладываю каждый downloadUrl для каждого образ. У меня есть проблема, когда мне нужно подождать, пока все изображения были загружены в хранилище и все downlaodUrls были добавлены в массив var immaginiDownloadURL = [], прежде чем создавать сообщение, и я не могу понять это. Заранее спасибо.

    //Here create a new post
function newPost() {
  var postsStorageRef = firebase.storage().ref().child('posts');
  var postDatabaseRef = firebase.database().ref().child('posts');
  var postKey = firebase.database().ref().child('posts').push().key;
  immaginiPost.forEach(function(file){
    let uploadTask = postsStorageRef.child(postKey).child(file.name).put(file);

    uploadTask.on('state_changed', function(snapshot){
  // Observe state change events such as progress, pause, and resume
  // 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) {
  // Handle unsuccessful uploads
  console.log('Unsuccessful upload');
    }, function() {
      // Handle successful uploads on complete
      // For instance, get the download URL: https://firebasestorage.googleapis.com/...
      uploadTask.snapshot.ref.getDownloadURL().then(function(downloadURL) {
        console.log('File available at', downloadURL);
        immaginiDownloadUrl.push(downloadURL);
        //Then create the post...
        //TODO: Think of how to add all the pictures and then at the end create the post
      });
    });
  });
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...