Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sometimes duplicate keys appear in useList after database insertion #245

Open
NathanC opened this issue May 31, 2022 · 16 comments
Open

Sometimes duplicate keys appear in useList after database insertion #245

NathanC opened this issue May 31, 2022 · 16 comments

Comments

@NathanC
Copy link

NathanC commented May 31, 2022

I've noticed this issue intermittently:

When a new record is added to the realtime database, it shows up multiple times in the list when using useList. When I refresh the page, it will go back to only being shown once. This has happened for multiple different views of useList (a data table, a custom component, etc), and I'm confident it's caused by a single key appearing multiple times in the data snapshot.

This has happened in two different apps of mine, a normal react project and a react native project.

I haven't been able to consistently reproduce this, but it's happened frequently enough that I bet it happens to other users. Has anyone noticed this happening to them?

(This is a very useful library by the way, thank you for creating it!)

@wong2
Copy link
Contributor

wong2 commented Jun 1, 2022

+1

@rayoverweij
Copy link

I see the same, and also with useListVals.

@ByKyZo
Copy link

ByKyZo commented Jul 4, 2022

I have the same problem, do you have any news?

@rayoverweij
Copy link

Hi - from my experience so far, it only seems to happen in development environments, not in production.

I haven't had time to look at this repo's source code yet, but as the bug appeared after upgrading to React 18 (I think), my guess it that it has something to do with React running effects twice in development mode now, and that interfering with how RFH works.

It hasn't been a breaking issue for us as, as mentioned, it only appears in dev for me (as far as I can see, at least), but still, it's very annoying.

@achuinard
Copy link

Seeing it myself with NextJS app. Kind of concerning, makes me think the hooks don't clean themselves properly when unmounting.

@coopy
Copy link

coopy commented Sep 10, 2022

I'm seeing this with useListVals in a multiplayer game built with create-react-app. When another client adds a player object to a list, the first client sees 5 copies of that player object. Debugging useList, these instances are kept in internal state. This is in developer mode.

React 18.2.0
react-firebase-hooks: 5.0.3

@opture
Copy link

opture commented Sep 22, 2022

+1

1 similar comment
@fastsyrup
Copy link

+1

@fastsyrup
Copy link

even worse, I get triggered twice for some of the keys, first with the old v.val() and then with the old value. So I have to manually ignore the second trigger...

@GoldenSoju
Copy link

I got the same problem with useListVal in dev mode (firebase emulator).
It happens after inserting entries into, or removing entries from the db.
Programmatically as well as in the emulator UI view.

@bobturla
Copy link

bobturla commented Nov 4, 2022

+1 when using useListVals

@PatrikTheDev
Copy link

Also happens here when using useListVals

@oshcherbakovv
Copy link

I fixed this problem by replacing useEffect cleanup function in useList.ts file to:
return () => { off(ref) };

@seth-church
Copy link

We're also seeing duplicate keys with useList. It's annoying having to check for and remove duplicates. Any ETA on this?

@akashdeep-sarin
Copy link

+1

@MB2M
Copy link

MB2M commented Mar 24, 2023

#298

I added a PR to manage the issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests