SSR => @firebase/auth: Auth (9.6.8): INTERNAL ASSERTION FAILED: Expected a class definition
See original GitHub issueFirebase:
"firebase": "^9.6.8",
AngularFire:
Angular CLI: 13.3.0
Node: 14.16.0
Package Manager: npm 6.14.11
OS: darwin x64
Angular: 13.2.5
... animations, cdk, common, compiler, compiler-cli, core, forms
... language-service, material, platform-browser
... platform-browser-dynamic, platform-server, router
Package Version
---------------------------------------------------------
@angular-devkit/architect 0.1303.0
@angular-devkit/build-angular 13.0.4
@angular-devkit/core 13.3.0
@angular-devkit/schematics 13.3.0
@angular/cli 13.3.0
@angular/fire 7.2.1
@angular/google-maps 13.3.0
@nguniversal/builders 13.0.2
@nguniversal/express-engine 13.0.2
@schematics/angular 13.3.0
ng-packagr 13.2.1
rxjs 6.6.7
typescript 4.5.5
How to reproduce these conditions
run habitat-commons:serve-ssr:development
- in my app browser and ssr server will build fine
- start ssr server
node dist/apps/habitat-commons/server/main.js
- make a request to this server
- see errors below
First Error
@firebase/auth: Auth (9.6.8): INTERNAL ASSERTION FAILED: Expected a class definition
Error: INTERNAL ASSERTION FAILED: Expected a class definition
at debugFail (test_app/dist/apps/habitat-commons/server/main.js:317691:9)
at debugAssert (test_app/dist/apps/habitat-commons/server/main.js:317704:5)
at Module._getInstance (test_app/dist/apps/habitat-commons/server/main.js:317728:3)
at new CompatPopupRedirectResolver (test_app/dist/apps/habitat-commons/server/main.js:315880:81)
at _getInstance (test_app/dist/apps/habitat-commons/server/main.js:317736:14)
at AuthImpl._initializeWithPersistence (test_app/dist/apps/habitat-commons/server/main.js:320082:37)
at _initializeAuthInstance (test_app/dist/apps/habitat-commons/server/main.js:317817:8)
at test_app/dist/apps/habitat-commons/server/main.js:325294:7
at Component.instanceFactory (test_app/dist/apps/habitat-commons/server/main.js:325297:7)
at Provider.getOrInitializeService (test_app/dist/apps/habitat-commons/server/main.js:327833:33)
i looked into the _getInstance
mentioned in the callstack. it takes an arg that should be a class instance. hence the error.
Here is what _getInstance
looked like in my ssr bootstrap (main.js
)
function _getInstance(cls) {
console.log('**((_getInstance 0))**', cls)
debugAssert(cls instanceof Function, 'Expected a class definition');
let instance = instanceCache.get(cls);
if (instance) {
debugAssert(instance instanceof cls, 'Instance stored in cache mismatched with class');
return instance;
}
instance = new cls();
instanceCache.set(cls, instance);
return instance;
}
The log i added(see above) revealed that an error instead of a class was passed in the 3 rd time.see out put below
**((_getInstance 0))** [class InMemoryPersistence] { type: 'NONE' }
**((_getInstance 0))** [class CompatPopupRedirectResolver]
**((_getInstance 0))** FirebaseError: Firebase: Error (auth/operation-not-supported-in-this-environment).
at createErrorInternal (test_app/dist/apps/habitat-commons/server/main.js:317665:38)
at _createError (test_app/dist/apps/habitat-commons/server/main.js:317640:10)
at Module.2485 (test_app/dist/apps/habitat-commons/server/main.js:325381:29)
at __webpack_require__ (test_app/dist/apps/habitat-commons/server/main.js:545206:42)
at Module.32562 (test_app/dist/apps/habitat-commons/server/main.js:325547:76)
at __webpack_require__ (test_app/dist/apps/habitat-commons/server/main.js:545206:42)
at Module.70092 (test_app/dist/apps/habitat-commons/server/main.js:315550:81)
at __webpack_require__ (test_app/dist/apps/habitat-commons/server/main.js:545206:42)
at Module.55776 (test_app/dist/apps/habitat-commons/server/main.js:500158:79)
at __webpack_require__ (test_app/dist/apps/habitat-commons/server/main.js:545206:42) {
code: 'auth/operation-not-supported-in-this-environment',
customData: {}
}
[2022-03-17T20:12:59.002Z] @firebase/auth: Auth (9.6.8): INTERNAL ASSERTION FAILED: Expected a class definition
ERROR Error: INTERNAL ASSERTION FAILED: Expected a class definition
of course all my servers and test requests are on local host…Do you know anything that can help me understand either error
@firebase/auth: Auth (9.6.8): INTERNAL ASSERTION FAILED: Expected a class definition
or
Firebase: Error (auth/operation-not-supported-in-this-environment)
Expected behavior
I expected to send a universal rendered view to the browser
Actual behavior
Firebase auth prevents universal from performing its task.
Issue Analytics
- State:
- Created 2 years ago
- Reactions:10
- Comments:25
Top Results From Across the Web
Firebase auth setPersistance({type: 'SESSION'}) throws ...
Firebase auth setPersistance({type: 'SESSION'}) throws INTERNAL ASSERTION FAILED: Expected a class definition ; import { Observable, of } ; 'rxjs'; ...
Read more >Developers - [v9.0.2 auth] INTERNAL ASSERTION FAILED
In an effort to reduce the dependencies of the authentication code I use, I tried the following: // Works import { getAuth }...
Read more >Firebase JavaScript SDK Release Notes - Google
Fixed a bug that caused Firebase SDKs to throw an error in Firefox browsers ... Fixed an issue in @firebase/auth-compat where the SDK...
Read more >firebaseerror: firebase: error (auth/operation-not-allowed).
While programming a react website, I am hosting on Firebase and using Firebase Auth I got the following problem. This is my auth...
Read more >"angularfireをv6→v7, firebaseをv8→v9にアップデートしたら ...
ピエン `@firebase/auth: Auth (9.6.8): INTERNAL ASSERTION FAILED: ... firebaseをv8→v9にアップデートしたら未知のエラーでSSRのみ失敗してしまって ...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
There seems to be a resolve in here. however I dont know how to apply it to my
@angular/fire
envhttps://github.com/firebase/firebase-js-sdk/issues/5475#issuecomment-920211870
This will solve the issue for you if you are getting it when server side rendering (we are using Angular Universal)