I want to get the points and show to the owner of that account when he is logged in I tried reading firebase documentation but I couldn’t made it here is the code that I use for assigning the random key and saving the child data
const autoid = firebase.database().ref("user").push().key; firebase.database().ref("user").child(autoid).set({ Email :email, Password : password, Points :"500" });
I want whenever the user is login get his points from database and show it on their profile.
Advertisement
Answer
In your code you are generating a random key and then assigning it to a variable. A better way to do is to get the userId
and assign it as a documentid
and then when retrieving the data use the userId
to get the user’s data.
For example, to add the data:
const database = firebase.database(); const user = firebase.auth().currentUser; if (user !== null) { // Add user data in collection "users" database.ref("users").child(user.uid).set({ email :email, password : password, points :"500" }) .then(() => { console.log("data successfully written!"); }) .catch((error) => { console.error("Error writing data: ", error); }); }
Then after the user logins in, you can do the following to retrieve points
:
const database = firebase.database(); const user = firebase.auth().currentUser; if (user !== null) { let ref = database.ref("users").child(user.uid); ref.get().then((snapshot) => { if (snapshot.exists()) { console.log("data:", snapshot.val()); console.log(snapshot.val().points); } }).catch((error) => { console.log("Error getting data:", error); }); }