Skip to content

Bug: Uncaught (in promise): TypeError: app.database is not a function, AngularFireDatabase #1669

@lcoppinger

Description

@lcoppinger

Please let me know if more information is required I wasn't sure how to present it.

Version info

Angular: 5.0.0-rc.5

Firebase: 4.13.1

AngularFire: 5.0.0-rc.7.2-next

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

How to reproduce these conditions

Steps to set up and reproduce
Deployed function to firebase hosting with the below package.json file:

{ "name": "functions", "scripts": { "serve": "firebase serve --only functions", "shell": "firebase experimental:functions:shell", "start": "npm run shell", "deploy": "firebase deploy --only functions", "logs": "firebase functions:log" }, "dependencies": { "@amcharts/amcharts3-angular": "./es5_modules/@amcharts/amcharts3-angular", "@angular/animations": "5.0.0-rc.5", "@angular/cdk": "^5.2.5", "@angular/cli": "^1.6.8", "@angular/common": "5.0.0-rc.5", "@angular/compiler": "5.0.0", "@angular/core": "5.0.0-rc.5", "@angular/flex-layout": "^5.0.0-beta.14", "@angular/forms": "5.0.0-rc.5", "@angular/http": "5.0.0-rc.5", "@angular/platform-browser": "^5.0.0-rc.0", "@angular/platform-browser-dynamic": "5.0.0-rc.5", "@angular/platform-server": "^5.2.10", "@angular/router": "5.0.0-rc.5", "@fortawesome/fontawesome-svg-core": "^1.2.0-11", "@fortawesome/free-brands-svg-icons": "^5.1.0-8", "@fortawesome/free-solid-svg-icons": "^5.1.0-8", "@nguniversal/express-engine": "^6.0.0", "@nguniversal/module-map-ngfactory-loader": "^5.0.0", "@ngx-share/core": "^5.0.1", "@types/angular-google-analytics": "^1.1.33", "@types/d3": "^5.0.0", "@types/express": "^4.11.1", "@types/google.analytics": "0.0.36", "angular-universal-express-firebase": "0.0.4", "angularfire2": "^5.0.0-rc.7.2-next", "babel-cli": "^6.26.0", "babel-preset-es2015": "^6.24.1", "bufferutil": "^3.0.4", "core-js": "^2.4.1", "d3": "^4.9.1", "d3-geo": "^1.10.0", "d3-queue": "^3.0.7", "express": "^4.16.3", "firebase": "^4.13.1", "firebase-admin": "^5.12.1", "firebase-functions": "^1.0.2", "font-awesome": "^4.7.0", "jquery": "^3.2.1", "ngx-google-places-autocomplete": "./es5_modules/ngx-google-places-autocomplete", "ngx-slick": "^0.1.3", "reflect-metadata": "^0.1.12", "rxjs": "^5.5.10", "topojson": "^3.0.0", "typescript": "^2.4.2", "utf-8-validate": "^4.0.1", "web-animations-js": "^2.3.1", "ws": "^5.1.1", "xmlhttprequest": "^1.8.0", "zone.js": "^0.8.14" }, "devDependencies": { "typescript": "^2.5.3" }, "private": true }

Debug output

Error in Firebase functions log

ERROR { Error: Uncaught (in promise): TypeError: app.database is not a function TypeError: app.database is not a function at new AngularFireDatabase (/user_code/node_modules/angularfire2/bundles/database.umd.js:263:29) at _createClass (/user_code/node_modules/@angular/core/bundles/core.umd.js:10670:20) at _createProviderInstance$1 (/user_code/node_modules/@angular/core/bundles/core.umd.js:10634:26) at resolveNgModuleDep (/user_code/node_modules/@angular/core/bundles/core.umd.js:10619:17) at _createClass (/user_code/node_modules/@angular/core/bundles/core.umd.js:10662:29) at _createProviderInstance$1 (/user_code/node_modules/@angular/core/bundles/core.umd.js:10634:26) at resolveNgModuleDep (/user_code/node_modules/@angular/core/bundles/core.umd.js:10619:17) at NgModuleRef_.get (/user_code/node_modules/@angular/core/bundles/core.umd.js:11844:16) at resolveDep (/user_code/node_modules/@angular/core/bundles/core.umd.js:12340:45) at createClass (/user_code/node_modules/@angular/core/bundles/core.umd.js:12210:32) at resolvePromise (/user_code/node_modules/zone.js/dist/zone-node.js:814:31) at resolvePromise (/user_code/node_modules/zone.js/dist/zone-node.js:771:17) at /user_code/node_modules/zone.js/dist/zone-node.js:873:17 at ZoneDelegate.invokeTask (/user_code/node_modules/zone.js/dist/zone-node.js:421:31) at Object.onInvokeTask (/user_code/node_modules/@angular/core/bundles/core.umd.js:4656:33) at ZoneDelegate.invokeTask (/user_code/node_modules/zone.js/dist/zone-node.js:420:36) at Zone.runTask (/user_code/node_modules/zone.js/dist/zone-node.js:188:47) at drainMicroTaskQueue (/user_code/node_modules/zone.js/dist/zone-node.js:595:35) at ZoneTask.invokeTask (/user_code/node_modules/zone.js/dist/zone-node.js:500:21) at ZoneTask.invoke (/user_code/node_modules/zone.js/dist/zone-node.js:485:48) rejection: TypeError: app.database is not a function at new AngularFireDatabase (/user_code/node_modules/angularfire2/bundles/database.umd.js:263:29) at _createClass (/user_code/node_modules/@angular/core/bundles/core.umd.js:10670:20) at _createProviderInstance$1 (/user_code/node_modules/@angular/core/bundles/core.umd.js:10634:26) at resolveNgModuleDep (/user_code/node_modules/@angular/core/bundles/core.umd.js:10619:17) at _createClass (/user_code/node_modules/@angular/core/bundles/core.umd.js:10662:29) at _createProviderInstance$1 (/user_code/node_modules/@angular/core/bundles/core.umd.js:10634:26) at resolveNgModuleDep (/user_code/node_modules/@angular/core/bundles/core.umd.js:10619:17) at NgModuleRef_.get (/user_code/node_modules/@angular/core/bundles/core.umd.js:11844:16) at resolveDep (/user_code/node_modules/@angular/core/bundles/core.umd.js:12340:45) at createClass (/user_code/node_modules/@angular/core/bundles/core.umd.js:12210:32), promise: ZoneAwarePromise { __zone_symbol__state: 0, __zone_symbol__value: TypeError: app.database is not a function at new AngularFireDatabase (/user_code/node_modules/angularfire2/bundles/database.umd.js:263:29) at _createClass (/user_code/node_modules/@angular/core/bundles/core.umd.js:10670:20) at _createProviderInstance$1 (/user_code/node_modules/@angular/core/bundles/core.umd.js:10634:26) at resolveNgModuleDep (/user_code/node_modules/@angular/core/bundles/core.umd.js:10619:17) at _createClass (/user_code/node_modules/@angular/core/bundles/core.umd.js:10662:29) at _createProviderInstance$1 (/user_code/node_modules/@angular/core/bundles/core.umd.js:10634:26) at resolveNgModuleDep (/user_code/node_modules/@angular/core/bundles/core.umd.js:10619:17) at NgModuleRef_.get (/user_code/node_modules/@angular/core/bundles/core.umd.js:11844:16) at resolveDep (/user_code/node_modules/@angular/core/bundles/core.umd.js:12340:45) at createClass (/user_code/node_modules/@angular/core/bundles/core.umd.js:12210:32) }, zone: Zone { _properties: { isAngularZone: true }, _parent: Zone { _properties: {}, _parent: null, _name: '<root>', _zoneDelegate: [Object] }, _name: 'angular', _zoneDelegate: ZoneDelegate { _taskCounts: [Object], zone: [Circular], _parentDelegate: [Object], _forkZS: null, _forkDlgt: null, _forkCurrZone: [Object], _interceptZS: null, _interceptDlgt: null, _interceptCurrZone: [Object], _invokeZS: [Object], _invokeDlgt: [Object], _invokeCurrZone: [Circular], _handleErrorZS: [Object], _handleErrorDlgt: [Object], _handleErrorCurrZone: [Circular], _scheduleTaskZS: [Object], _scheduleTaskDlgt: [Object], _scheduleTaskCurrZone: [Circular], _invokeTaskZS: [Object], _invokeTaskDlgt: [Object],

Expected behavior

Firebase SSR function to load server content including data from AngularFireDatabase.

Actual behavior

Browser is rendering the data but SSR does not work with AngularFireDatabase call due to the above error.

This is only happening on the server - when I run 'firebase serve' locally I have no issues - I think naively it might be that firebase config for AngularFire is not initialised on the server.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions