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

94
Views
Solo ejecute el valor de escritura en la base de datos en tiempo real solo una vez
firebase.auth().onAuthStateChanged(function(user) { if (user){ firebase.database().ref("users/" + user.uid).set({ email:user.email, points:"500", uid: user.uid }) var query = firebase.database().ref("users").child(user.uid); query.once("value").then(function(snapshot) { var email = snapshot.val().Email; var point = snapshot.val().points; document.getElementById("points").innerHTML=point; });

El código anterior es para escribir y recuperar los datos de la base de datos, pero no va de acuerdo con los planes. Cada vez que hay cambios en los puntos, restaura automáticamente los puntos a 500. ¿Hay alguna forma en que los datos de un usuario se escriban solo una vez?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Parece que solo desea escribir los puntos iniciales si los datos del usuario aún no existen. Para eso puedes usar una transacción :

 if (user){ const userRef = firebase.database().ref("users/" + user.uid); userRef.transaction((current) => { if (!current) return { email:user.email, points:"500", uid: user.uid } }) ...

Esto devuelve el valor inicial si aún no existen datos. Dado que de lo contrario no devuelve ningún valor, la transacción se aborta cuando ya existen datos.

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!