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

526
Visualizações
¿Cómo escribir datos en Firebase Realtime Database como [clave personalizada: valor] en React?

Lo que estoy tratando de lograr es tener ID aleatorias en un nodo dedicado en Firebase Realtime Database, mientras puedo verificar si ya existe una ID en el nodo antes de escribirla para evitar la duplicidad.
Estoy trabajando con web React (JavaScript).

La base de datos actualmente se ve así:

Nodos de base de datos actuales

Lo que busco es tener otro nodo con ID en el siguiente formato:

Base de datos con el formato de datos deseado

Nota: las ID generadas en el nodo 'usuarios' son diferentes de las de 'ids', no están conectadas.

Firebase no debe generar claves de ID en pares [clave: valor], como 'abcd' (como lo hace el método push()).
En su lugar, los ID se generan por separado antes de escribir los datos.

Hasta ahora, encontré algunos recursos con preguntas similares, pero estaban relacionados con una plataforma diferente con otra sintaxis o estaban desactualizados.

Mi código actual para leer ID del nodo 'ids' parece estar funcionando, si el nodo con ID se crea manualmente en la consola de la base de datos, pero parece que todavía necesito ayuda con el código para escribir datos en el formato deseado.

Este es el código para leer datos:

 function checkIdDuplicity(id) { const database = getDatabase(); get(child(ref(database), 'ids/')) .then((snapshot) => { if (snapshot.exists()) { // Snapshot exists, find possible duplicate if (snapshot.hasChild(id)) { // Such ID is already in database console.log("ID already exists"); return true; } else { // ID is unique return false; } } else { // No IDs in database, node shall be created return false; } }) .catch((error) => { console.log(error); }); }

¿Alguien tiene alguna idea? 🙂

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

0

Para agregar un nodo con clave personalizada, debe usar set() en lugar de push() .

 const nodeRef = child(ref(database), "ids/" + id); // id = custom ID you want to specify await set(nodeRef, { ...data })

Además, está descargando ids/ nodos completos para verificar la existencia de un identificador determinado. En su lugar, puede simplemente descargar esa ID en particular:

 // specify the custom ID to check for in ref get(child(ref(database), 'ids/' + id)) .then((snapshot) => { if (snapshot.exists()) { console.log("ID already exists in database") } else { console.log("ID does not exist in database") } })
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