angularfire icon indicating copy to clipboard operation
angularfire copied to clipboard

docData observable stream emits identical object values multiple times in a row

Open folsze opened this issue 1 year ago • 1 comments

Version info

Angular: ^18.0.0

Firebase: ^10.13.0

AngularFire: ^18.0.1

Other (e.g. Ionic/Cordova, Node, browser, operating system):

"@ionic/angular": "^8.0.0",

Tested on MacOS Chrome, but reproducible elsewhere. Else let me know.

How to reproduce these conditions

Simply press the update button after strating this project, it will update the game entity and make it emit twice: https://github.com/folsze/firebase-observable-double-emission

here is a related stackoverflow post that I created:

https://stackoverflow.com/questions/78891192/firebase-docdata-stream-emits-identical-object-values-multiple-times-in-a-row

Steps to set up and reproduce

run with package json npm run

then simply press the update button, it will update the game entity and make it emit twice:

Debug output

image

** Output from firebase.database().enableLogging(true); ** <- I have no idea what this is suppoed to do for me. I added this but receive no logs:

import { enableLogging } from '@angular/fire/database';

enableLogging(true);

Expected behavior

It only emits once

Actual behavior

it emits multiple times (twice currently for this simple scenario):

image

folsze avatar Aug 30 '24 10:08 folsze

This library function docData has many flaws. I inspected the browser network tab and noticed that there is multiple streams being created from a single docData call.

Also this does not seem to be able to start even a single stream with the cacitor-ios version:

https://stackoverflow.com/questions/78977750/angular-fire-docdata-works-on-chrome-safari-macos-but-never-emits-on-capacitor-i

I would suggest at least adding a hint into the library, that multiple streams could be created, that this is an open bug in the library. Because developers are using this function assuming it works.

folsze avatar Sep 12 '24 11:09 folsze