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

577
Visualizações
JavaScript/FireStore: no se puede eliminar la clave de campo (variable UID)

Estoy tratando de crear un formulario en el que, cuando se envíe, primero se elimine el campo existente y luego se envíe un campo nuevo. El campo contiene una clave que es el UID del usuario y el valor es la marca de tiempo.

Funciona cuando codifico la clave exacta, pero no funciona si la uso como variable.

Este código funciona.

 db.collection("jmTest").doc(docID).update({ "food.up.8ebenfqRMmapx84tRpCp6dY3F4j1": firebase.firestore.FieldValue.delete(), "food.down.8ebenfqRMmapx84tRpCp6dY3F4j1": firebase.firestore.FieldValue.delete() });

Ejemplo de trabajo 1 Ejemplo de trabajo 2

Este código no funciona.

 var userUID = user.uid // declare and initialize db.collection("jmTest").doc(docID).update({ "food.up.${userUID}": firebase.firestore.FieldValue.delete(), "food.down.${userUID}": firebase.firestore.FieldValue.delete() });

Este código no funciona.

 db.collection("jmTest").doc(docID).update({ food: { up: { userUID: firebase.firestore.FieldValue.delete() } } });

También he intentado usar estos en lugar de solo "uid".

 [userUID] ${userUID} String(userUID)

Este código no funciona.

 var userUID = user.uid // declare and initialize var foodUp = "food.up." + [userUID]; var foodDown = "food.down." + [userUID]; db.collection("jmTest").doc(docID).update({ foodUp: firebase.firestore.FieldValue.delete(), foodDown: firebase.firestore.FieldValue.delete() });

ejemplo no funcional

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

0

En el siguiente bloque de código, ha intentado utilizar cadenas con plantilla, pero las ha encerrado entre comillas dobles en lugar de acentos graves. Además, no está permitido usar cadenas de plantilla en declaraciones de objetos, por lo que también debe encerrarlos entre corchetes para usar la sintaxis de expresión.

 db.collection("jmTest").doc(docID).update({ "food.up.${userUID}": firebase.firestore.FieldValue.delete(), "food.down.${userUID}": firebase.firestore.FieldValue.delete() });

debiera ser

 db.collection("jmTest").doc(docID).update({ [`food.up.${userUID}`]: firebase.firestore.FieldValue.delete(), [`food.down.${userUID}`]: firebase.firestore.FieldValue.delete() });

De manera similar, en las siguientes líneas, intenta usar el valor dinámico de una variable, pero en su lugar especifica el nombre de las claves como foodUp y foodDown en lugar de usar el valor de la expresión/variable como clave:

 var userUID = user.uid // declare and initialize var foodUp = "food.up." + [userUID]; // while this "works", use: "food.up." + userUID var foodDown = "food.down." + [userUID]; db.collection("jmTest").doc(docID).update({ foodUp: firebase.firestore.FieldValue.delete(), foodDown: firebase.firestore.FieldValue.delete() });

debiera ser

 const userUID = user.uid // declare and initialize const foodUp = "food.up." + userUID; const foodDown = "food.down." + userUID; db.collection("jmTest").doc(docID).update({ [foodUp]: firebase.firestore.FieldValue.delete(), [foodDown]: firebase.firestore.FieldValue.delete() });

o

 const userUID = user.uid // declare and initialize db.collection("jmTest").doc(docID).update({ ["food.up." + userUID]: firebase.firestore.FieldValue.delete(), ["food.down." + userUID]: firebase.firestore.FieldValue.delete() });

Cuando utilice los bloques de código anteriores, tenga cuidado de que el userUID de usuario no sea null o undefined , ya que puede dar lugar a un comportamiento no intencionado.

Como nota al margen, es 2022, use let y const en lugar de var cuando sea adecuado y apropiado.

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