Firebase v11 support
LanderBeeuwsaert opened this issue · 15 comments
This issue does not seem to follow the issue template. Make sure you provide all the required information.
Is there any support for this project?
@JGSolutions "support" is a loaded term, we are not a supported product as it related to the Google Cloud terms of service—but there are people working on the library.
AngularFire v18 is not compatible with Firebase v11, we need better error messaging in the JS SDK but the odd error messages that you are seeing here is because your environment has multiple conflicting versions of Firebase installed.
AngularFire v19 will support Firebase v11 and Angular v19, we just released v19.0.0-rc.2. ng add @angular/fire@next if this RC is looking good I'll plan to cut v19 final shortly.
Ok thanks for the help.
Maybe support was the wrong word to use.
i was able to comile and start the server when i run the app i get this:
app.routes.ts:49 ERROR RuntimeError: NG0203: inject() must be called from an injection context such as a constructor, a factory function, a field initializer, or a function used with runInInjectionContext. Find more at https://angular.dev/errors/NG0203
at injectInjectorOnly (core.mjs:1095:11)
at ɵɵinject (core.mjs:1105:40)
at inject (core.mjs:1190:10)
at run (angular-fire.mjs:115:10)
at angular-fire.mjs:162:56
at _ZoneDelegate.invoke (zone.js:369:28)
at Object.onInvoke (core.mjs:6494:25)
at _ZoneDelegate.invoke (zone.js:368:34)
at ZoneImpl.run (zone.js:111:43)
at zone.js:2538:40
i think this something on my side which I am looking into
@JGSolutions no worries.
Yeah, that's the error that caused us a lot of grief in our test suite. It turns out that the rxjs-interopt pipe we're using in our methods to make them SSR safe requires an injection context. So you can used it outside of a component or provider factory. If it's in a test you can wrap in TestBed.provideInjectionContext FWIW
Because that was a forcing function we're now reshuffling a lot of our stuff to use inject() internally rather than rely on constructor injection. Sorry that seems to be making for a rougher upgrade 😞
@jamesdaniels As long you guys are aware of the problem and you guys are on it, all good with me.
Thanks again
@JGSolutions our zone wrappers will now noop when outside of an injector context, cutting rc.3 now, give that a spin and LMK how it goes
@jamesdaniels
Thanks for the quick update.
Still happening but seems at a different line number: at run (angular-fire.mjs:115:10)
chunk-DZ7BV6I4.js?v=05488ea1:59 ERROR RuntimeError: NG0203: inject() must be called from an injection context such as a constructor, a factory function, a field initializer, or a function used with runInInjectionContext. Find more at https://angular.dev/errors/NG0203
at injectInjectorOnly (core.mjs:1095:11)
at ɵɵinject (core.mjs:1105:40)
at inject (core.mjs:1190:10)
at run (angular-fire.mjs:115:10)
at angular-fire.mjs:170:48
at _ZoneDelegate.invoke (zone.js:369:28)
at Object.onInvoke (core.mjs:6494:25)
at _ZoneDelegate.invoke (zone.js:368:34)
at ZoneImpl.run (zone.js:111:43)
at zone.js:2538:40
yeah I caught that one earlier today, addressing in #3590
Rc.4 out.
@jamesdaniels Amazing it works!
can i push this to prod or should i wait?
I don't foresee any large changes in the next two weeks, if you're seeing good behavior in local prod mode go for it. Just be ready to roll back incase of issues.
I'll continue to release RCs as feedback comes in but we're in freeze right now, so I won't release stable until after the new year.
with rc.4, the application no longer fails, but every invocation of some imported function results in a warning in the console.log. Is it an expected behavior for the time being?
Functions that issue warnings include:
authState() // import from '@angular/fire/auth'
objectVal()/listVal() // (import from '@angular/fire/database' or 'rxfire/database')
ref() // (import from '@angular/fire/database') The warning reads:
Firebase API called outside injection context: ɵzoneWrap(<name of function>)
Yes, those warnings are safe to ignore and are just breadcrumbs incase you run into any zone / rehydration instabilities. We have docs for that inbound.




