Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

525
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!