[realtime database] concurrent queries on the same path don't work
Maintainers usually reply within 2 days
@jhuleatt is already working on this.
Since May 13, 2022.
Assessment
This issue has not been assessed yet.
Description
Whenever I have multiple react components that reference the same path (.e.g /users), the library seems to get the results mixed up. In my project, I had a navbar element that displayed an "Admin" button if the user is an admin, and a table that shows all of the users, with some cursor-based pagination. Between those components, only the last query would yield any results. Switching to the second page and back to the first yields zero results, even though the queries passed in are the same (I verified this in the debugger).
As part of my troubleshooting, I tried using get() directly from firebase/database instead of using reactfire, and I had the same issue. This lead me to believe that the root cause comes from firebase-js-sdk instead of reactfire. I found the following issue logged there, but it's been open since February with no fix yet. https://github.com/firebase/firebase-js-sdk/issues/6038
I'm not sure if this should be logged in this project, but it pretty much means this library is completely broken for any real-life applications when using realtime database.
Version info
React: 17.0.2
Firebase: 9.8.1
ReactFire: 4.2.0
Other (e.g. Node, browser, operating system) (if applicable): Chrome 101.0.4951.54
Test case
https://codesandbox.io/s/reactfire-repro-4p16yo
Steps to reproduce
The test case shows that the three queries do not work at the same time. The last loaded table seems to take precedence. If you comment out any of the tables and reload the page, you should be able to see that each query works independently.
I've also seen an issue where sometimes the data doesn't come back at all, but I don't have a repro for that yet.
Expected behavior
Multiple queries on the same page should be able to produce different outputs
Actual behavior
Multiple queries on the same page all produce the same output, or no output at all.
- Dominant language
- TypeScript
- Stars
- 3.6k
- Forks
- 403
- Avg merge
- 4d 19h
- Merged PRs (30d)
- 11
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from FirebaseExtended/reactfire
-
Difficulty 5/5 Over a week Newbie friendliness 38/100
FirebaseExtended/reactfire#801 ·
Maintainers usually reply within 2 days
-
v5
Difficulty 4/5 3-5 days Newbie friendliness 48/100
FirebaseExtended/reactfire#793 ·
Maintainers usually reply within 2 days
-
v5
Difficulty 4/5 3-5 days Newbie friendliness 35/100
FirebaseExtended/reactfire#790 · 2 comments ·
Maintainers usually reply within 2 days
-
v5
Difficulty 4/5 3-5 days Newbie friendliness 55/100
FirebaseExtended/reactfire#789 ·
Maintainers usually reply within 2 days
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
FirebaseExtended/reactfire#788 ·
Maintainers usually reply within 2 days
All issues in FirebaseExtended/reactfire
Similar issues
-
triage
Difficulty 1/5 Under an hour Newbie friendliness 90/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
mermaid-js/mermaid-live-editor#2053 ·
Maintainers usually reply within 1 day
-
factory
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
jessepollak/home#1455 ·
Maintainers usually reply within 1 day
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 95/100
lingdojo/kana-dojo#31227 · 1 comment · 5 reactions ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
appandflow/stim#1838 ·
Maintainers usually reply within 1 day