如何在reactjs中从firebase数据库中获取对象的id

how to get id of object from firebase database in reactjs

如何在 reactjs 中从 firebase 数据库获取对象的 id 我在 react-redux 中有一个从 firebase 数据库中获取的列表数组,我想获取数组中每个对象的 id,如何获取?

获取快照,并将其作为 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。更好地使用地图,它更可预测。

您可以尝试这样的操作:

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;
  });
};
`