'forEach objects value equals undefined

Data Received from firebase-realtime-database as following

{
  "0": {
    "id": 10250903,
    ...
  },
  "1": {
    "id": 10810490,
    ...
  },
    ...
}

Code to setProducts

  const [products, setProducts] = useState();
  const {isLoading, setIsLoading} = useData();
  useEffect(async () => {
    setIsLoading(true);
    await firebase
      .database()
      .ref('events')
      .once('value')
      .then((events) => {
        setProducts(events);
      })
      .finally(() => setIsLoading(false));
  }, []);

I tried to iterate the object to get the values

products?.forEach((product) => {
              console.log(product);
});

Result:

Object {
  "id": 10250903,
  ...
}
Object {
  "id": 10810490,
  ...
}

But when I try to access id values, console prints undefined

products?.forEach((product) => {
              console.log(product.id); // undefined
});
undefined
undefined

I am stuck I tried everything.

  • Object.values(products) will not work since product will be undefined until data is received.
  • Creating a new Array and mapping into it also will not work.


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source