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

209
Visualizações
¿Cómo actualizar una matriz dentro de una matriz en Google Cloud Firestore?

La matriz principal se elimina al actualizar la matriz dentro de una matriz. Solo quiero que se actualice la matriz anidada. ¿Cómo resolverlo? a continuación está mi código:

 const handleSubmit = async (e) => { e.preventDefault(); const commentToAdd = { displayName: user.displayName, photoURL: user.photoURL, content: newComment, createdAt: timestamp.fromDate(new Date()), id: Math.random() } await updateDocument(project.id, { tasks: [ { comments: [{...project.tasks.comments, commentToAdd}], } ] })
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Firestore no admite la actualización de elementos de matriz en un índice dado. Primero debe buscar el documento, actualizar el campo de matriz con datos relevantes y actualizar toda la matriz nuevamente. Las matrices anidadas harán que sea aún más complejo actualizar un elemento anidado.

Simplemente puede hacer esto un poco creando una subcolección para tareas como se muestra a continuación:

 projects -> { projectId } -> tasks -> { taskId }

De esta forma, cada documento de tarea tendrá una matriz de comentarios. Sin embargo, aún tendrá que leer los comentarios y luego volver a escribir la matriz actualizada.

about 4 years ago · Juan Pablo Isaza Relatório

0

Como dijo @Dharmaraj, Firestore no admite la actualización de elementos de matriz en un índice dado.

Hasta donde entiendo tu pregunta. Si desea que no se elimine esa matriz principal, y simplemente actualice/agregue commentsToAdd en la matriz de comments . También puede usar setDoc en lugar de updateDoc . Vea el código a continuación, por ejemplo.

 for (let step = 0; step < 5; step++) { const commentToAdd = { displayName: `someName-${step}`, photoURL: `someURL-${step}`, content: `someContent-${step}`, createdAt: new Date(), id: Math.random() }; await setDoc({someRef}, { tasks: { comments: arrayUnion(commentToAdd) } }, {merge: true}) }

El código anterior daría como resultado: ingrese la descripción de la imagen aquí

Recorrí el código para enviar múltiples comentarios en el campo. Solo una nota, al hacer esto, sus tipos de campo se actualizarán en consecuencia:

 - tasks: `map` - comments: `array` - commentFields: `map`

También puede consultar esta documentación para obtener más información.

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