Raja Shahrukh
Raja Shahrukh

Reputation: 3

Retrieving current user data from firebase

I'm able to retrieve the data but it's only showing the data of the last user in the database. The users are listed by their uid. Below are the code and screenshot of the data from firebase. Help me out, guys!

var database = firebase.database().ref('users');
database.on("child_added", function(snapshot) {
    var snapVal = snapshot.val();
    displayName.innerHTML = snapVal.mUsername;
    console.log(snapVal);

    var badge = document.createElement('span');
    badge.textContent = 'view details';
    badge.setAttribute('class','badge');
    var list = document.createElement('a');
    list.textContent = snapVal.mUsername;
    list.setAttribute('href', '#');
    list.setAttribute('class', 'list-group-item');
    patientList.appendChild(list);
    list.appendChild(badge);
    var userIcon = document.createElement('i');
    userIcon.setAttribute('class','far fa-user');
    list.insertBefore(userIcon, list.childNodes[0])

},
function (errorObject) {
    console.log("The read failed: " + errorObject.code);
});

Database, users is the child of the root.

Upvotes: 0

Views: 412

Answers (1)

Suraj Malviya
Suraj Malviya

Reputation: 3773

You should refer to the specific user's node to retrieve the information. Your code should look like:

var userRef = firebase.database().ref(`users/${user_node_key}`); // user_node_key should be the node containing the user info.

You should be able to get the node key using the current user's object.

and then call once on the userRef if you just need to get the detail once or on if you need to listen all the changes on that user.

The code should look like:

userRef.once('value').then(function(snapshot) {
  //use snapshot to get the users data
});

Upvotes: 1

Related Questions