【发布时间】:2020-07-21 13:22:44
【问题描述】:
如何在 reactjs 中从 firebase 数据库中获取对象的 id 我有一个从 react-redux 中的 firebase 数据库获取的列表数组,我想获取数组的每个对象的 id,我该如何获取?
【问题讨论】:
标签: arrays reactjs firebase-realtime-database react-redux javascript-objects
如何在 reactjs 中从 firebase 数据库中获取对象的 id 我有一个从 react-redux 中的 firebase 数据库获取的列表数组,我想获取数组的每个对象的 id,我该如何获取?
【问题讨论】:
标签: arrays reactjs firebase-realtime-database react-redux javascript-objects
获取快照,并将其作为 Map 进行迭代,例如 Object.keys(foo).forEach。
这是一段虚拟代码:
`
const rootRef = firebase.database().ref();
const fooRef = rootRef.child("foo");
fooRef.on("value", snap => {
const foo = snap.val();
if (foo !== null) {
Object.keys(foo).forEach(key => {
// The ID is the key
console.log(key);
// The Object is foo[key]
console.log(foo[key]);
});
}
});
`
注意 Firebase 中的数组:如果 ID 是从 '0' 开始的连续数字,它们会被转换为数组。如果您删除数组中间的一个项目,它不会相应地更改 ID。更好地使用地图,它更可预测。
【讨论】:
arrayName.forEach(/* Do your stuff here */) 但是再一次注意Firebase中的数组,因为它们是作为对象存储的。更多信息在这里:firebase.googleblog.com/2014/04/…
你可以试试这样的:
export const getAllRooms = () => {
return roomCollection.get().then(function (querySnapshot) {
const rooms = [];
querySnapshot.forEach(function (doc) {
const room = doc.data();
room.id = doc.id;
rooms.push(room);
});
return rooms;
});
};
`
【讨论】: