Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

514
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda