如何在firebase中获取唯一ID

时间:2018-07-23 20:47:28

标签: javascript arrays reactjs firebase firebase-realtime-database

ive在使用Firebase阵列时遇到了很多麻烦,我现在使用push

我有这个

enter image description here

我想吸引所有用户,所以我这样做:

export const pullFromFirebase = () => {
  return firebase
    .database()
    .ref("/users/")
    .once("value")
    .then(snapshot => {
      var users = [];
      snapshot.forEach(user => {
        users.push(user.val());
      });
      return users;
    });
};

这很好

但是,我现在需要firebase为我生成的唯一ID -LI7d_i_BmrXktzMoe4p,以便我可以访问此记录(即用于更新和删除)该怎么做?

2 个答案:

答案 0 :(得分:0)

您可以更改此部分:

snapshot.forEach(user => {
  users.push(user.val());
});

改为:

let usersObj = snapshot.val()
for (var user_id in usersObj) {
  users.push(Object.assign(usersObj[user_id], {
    user_id: user_id,
  });
});

这样,它不仅具有{_1}}数组中的每个元素仅包含电子邮件,姓名和用户名字段,还具有user_id。

答案 1 :(得分:0)

您可以通过key属性获取快照的密钥:https://firebase.google.com/docs/reference/js/firebase.database.DataSnapshot#key

因此您可以将代码更改为此:

export const pullFromFirebase = () => {
  return firebase
    .database()
    .ref("/users/")
    .once("value")
    .then(snapshot => {
      var users = [];
      snapshot.forEach(user => {
        let userObj = user.val();
        userObj.id= user.key;
        users.push(userObj);
      });
      return users;
    });
};