We are developing an ionic hybrid application that uses Firebase as its backend. For this we use the npm package angularfire2.
We have two databases: one for development and one for production, so we want to change them depending on the state of the application.
To do this, we created a Boolean static constant ( IS_PRODUCTION_ENVIRONMENT), which, depending on its value, will change FIREBASE_CONFIG, which is a variable that contains database configuration data.
This is the important data in our app.config.tsfile:
export class AppConfig {
public static readonly IS_PRODUCTION_ENVIRONMENT = false;
public static readonly FIREBASE_CONFIG_DEVELOPMENT = {
apiKey: "",
authDomain: "",
databaseURL: "",
projectId: "",
storageBucket: "",
messagingSenderId: ""
};
public static readonly FIREBASE_CONFIG_PRODUCTION = {
apiKey: "",
authDomain: "",
databaseURL: "",
projectId: "",
storageBucket: "",
messagingSenderId: ""
};
public static readonly FIREBASE_CONFIG = AppConfig.IS_PRODUCTION_ENVIRONMENT ?
AppConfig.FIREBASE_CONFIG_PRODUCTION : AppConfig.FIREBASE_CONFIG_DEVELOPMENT;
...
And this is a call to app.module.ts:
imports: [
...
AngularFireModule.initializeApp(AppConfig.FIREBASE_CONFIG),
...
]
, , --prod --release, ; , , ionic cordova run browser --prod --release, Firebase (FIREBASE_CONFIG_PRODUCTION), IS_PRODUCTION_ENVIRONMENT true, .
console.log , , IS_PRODUCTION_ENVIRONMENT FIREBASE_CONFIG . Firebase , IS_PRODUCTION_ENVIRONMENT true, .
, firebase.app.module.js, angularfire2, config initializeApp() FIREBASE_CONFIG_PRODUCTION ( IS_PRODUCTION_ENVIRONMENT true), FIREBASE_CONFIG FIREBASE_CONFIG_DEVELOPMENT.
FIREBASE_CONFIG ( ), , , - initializeApp() AppConfig 100% IS_PRODUCTION_ENVIRONMENT true.
, ionic serve ionic run, , Firebase . --prod --release.
- ?
!