Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

237
Visualizações
Intentando cargar varias imágenes en Firestore con Nodejs (SDK de Firebase de ClientSide)

Estoy tratando de cargar varias imágenes en firestore en mi código del lado del servidor nodeJS. Inicialmente lo implementé con la API del depósito Firestore.

 admin.storage.bucket().upload()

Estoy colocando el código anterior en un bucle for.

 for(let x = 0; images.length > x; x++){ admin.storage.bucket().upload(filepath, {options}).then(val => { //get image download URL and add to a list imageUrls.push(url); if(images.length == x+1){ // break out of loop and add the imagesUrls list to firestore } }) }

pero lo que sucede es que el código a veces no agrega todas las URL de imágenes a la lista de imageUrls y solo tengo 1 o 2 URL de imágenes guardadas en firestore mientras que en firestorage veo que cargó todas las imágenes.

Entiendo que la carga lleva algo de tiempo y me gustaría saber cuál es la mejor manera de implementar esto, ya que supuse que el método .then() es un enfoque asíncrono y se encargaría de cualquier instancia de espera.

Su respuesta sería muy apreciada.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

No está claro cómo obtiene los valores de ruta de filepath en el bloque for , pero imaginemos que images es una matriz de rutas totalmente calificadas a las imágenes que desea cargar en el depósito.

Lo siguiente debería hacer el truco (no probado):

 const signedURLs = []; const promises1 = []; images.forEach(path => { promises.push(admin.storage.bucket().upload(filepath, {options})) }) Promise.all(promises1) .then(uploadResponsesArray => { const promises2 = []; const config = { // See https://googleapis.dev/nodejs/storage/latest/File.html#getSignedUrl action: 'read', expires: '03-17-2025', //... }; uploadResponsesArray.forEach(uploadResponse => { const file = uploadResponse[0]; promises2.push(file.getSignedUrl(config)) }) return Promise.all(promises2); }) .then(getSignedUrlResponsesArray => { signedURLs.push(getSignedUrlResponsesArray[0]) }); // Do whatever you want with the signedURLs array
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda