ive在使用Firebase阵列时遇到了很多麻烦,我现在使用push
我有这个
我想吸引所有用户,所以我这样做:
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
,以便我可以访问此记录(即用于更新和删除)该怎么做?
答案 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;
});
};