FirebaseExtended / reactfire

Hooks, Context Providers, and Components that make it easy to interact with Firebase.
https://firebaseopensource.com/projects/firebaseextended/reactfire/
MIT License
3.51k stars 399 forks source link

useDatabaseListData only fetch data once #531

Open muhammadnasr opened 2 years ago

muhammadnasr commented 2 years ago

useDatabaseListData only fetches data once and does not listen to updates I am using react 18 and firebase 9

after hours of debugging and when I switch to useDatabaseObjectData, data is updated properly.

sojumoscow commented 1 year ago

Did you fix this useDatabaseListData ? I'm also getting this bug. I need to reload my browser in order to fetch the right data. Even the status is success, it doesn't show any data unless I reload the browser. Should have mentioned it in the docs.

CerceJo commented 1 year ago

When running in Jest/react-testing-framework, useDatabaseListData stops updating after a simple call to remove between tests clears the part of the database at the point where useDatabaseListData is referenced.

dtinth commented 1 year ago

I was hit by this bug too. I ended up re-implementing useDatabaseListData on top of Nano Stores, which resolved the issue for me. The code is here: https://github.com/wonderfulsoftware/ansr/blob/main/web/src/nanofire.ts (Not a complete implementation — it only supports a subset of the API that I actually use.)

OsamaMSoliman commented 8 months ago

it's exactly the same situation like stated here https://github.com/FirebaseExtended/reactfire/discussions/497

using useDatabaseObjectData for now is a nice catch, thanks @muhammadnasr

mattrossman commented 6 months ago

Unfortunately the useDatabaseObjectData workaround doesn't seem to support filtering with query() as shown here: https://github.com/FirebaseExtended/reactfire/blob/9429194d9dfed9a4b37129661d230ebcd0071e89/docs/use.md#show-a-list-of-data

For example, when I subscribe to query(myRef, limitToFirst(1)) with useDatabaseObjectData I receive all children instead of just the first. I'm not too surprised because that hook doesn't allow Query types for the ref argument.