97 lines
2.4 KiB
JavaScript
97 lines
2.4 KiB
JavaScript
|
import firebase from "firebase/app";
|
||
|
import "firebase/remote-config";
|
||
|
import firebaseConfig from "../../firebase.json";
|
||
|
//import "firebase/database";
|
||
|
|
||
|
// Initialize Firebase
|
||
|
// firebase.initializeApp(firebaseConfig);
|
||
|
|
||
|
// const remoteConfig = firebase.remoteConfig();
|
||
|
// remoteConfig.settings = {
|
||
|
// fetchTimeMillis: 60000,
|
||
|
// minimumFetchIntervalMillis: 1,
|
||
|
// };
|
||
|
|
||
|
// remoteConfig.defaultConfig = {
|
||
|
// maintenance: null,
|
||
|
// };
|
||
|
|
||
|
// remoteConfig
|
||
|
// .ensureInitialized()
|
||
|
// .then(() => {
|
||
|
// console.log("Firebase Remote Config is initialized");
|
||
|
// })
|
||
|
// .catch((err) => {
|
||
|
// console.error("Firebase Remote Config failed to initialize", err);
|
||
|
// });
|
||
|
|
||
|
// export const checkMaintenance = async () => {
|
||
|
// const res = await remoteConfig.fetchAndActivate();
|
||
|
// //console.log("fetchAndActivate", res);
|
||
|
// const maintenance = remoteConfig.getValue("maintenance");
|
||
|
// if (!maintenance) {
|
||
|
// return Promise.resolve(null);
|
||
|
// }
|
||
|
// return await Promise.resolve(JSON.parse(maintenance.asString()));
|
||
|
// };
|
||
|
|
||
|
class FirebaseHelper {
|
||
|
remoteConfig = null;
|
||
|
constructor() {
|
||
|
if (!this.isEnabled) return;
|
||
|
firebase.initializeApp(this.config);
|
||
|
|
||
|
this.remoteConfig = firebase.remoteConfig();
|
||
|
|
||
|
this.remoteConfig.settings = {
|
||
|
fetchTimeMillis: 60000,
|
||
|
minimumFetchIntervalMillis: 1,
|
||
|
};
|
||
|
|
||
|
this.remoteConfig.defaultConfig = {
|
||
|
maintenance: null,
|
||
|
};
|
||
|
|
||
|
this.remoteConfig
|
||
|
.ensureInitialized()
|
||
|
.then(() => {
|
||
|
console.log("Firebase Remote Config is initialized");
|
||
|
})
|
||
|
.catch((err) => {
|
||
|
console.error("Firebase Remote Config failed to initialize", err);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
get config() {
|
||
|
return firebaseConfig;
|
||
|
}
|
||
|
|
||
|
get isEnabled() {
|
||
|
return (
|
||
|
this.config &&
|
||
|
this.config["apiKey"] &&
|
||
|
this.config["authDomain"] &&
|
||
|
this.config["databaseURL"] &&
|
||
|
this.config["projectId"] &&
|
||
|
this.config["storageBucket"] &&
|
||
|
this.config["messagingSenderId"] &&
|
||
|
this.config["appId"] &&
|
||
|
this.config["measurementId"]
|
||
|
);
|
||
|
}
|
||
|
|
||
|
async checkMaintenance() {
|
||
|
if (!this.isEnabled) return Promise.reject("Not enabled");
|
||
|
|
||
|
const res = await this.remoteConfig.fetchAndActivate();
|
||
|
//console.log("fetchAndActivate", res);
|
||
|
const maintenance = this.remoteConfig.getValue("maintenance");
|
||
|
if (!maintenance) {
|
||
|
return Promise.resolve(null);
|
||
|
}
|
||
|
return await Promise.resolve(JSON.parse(maintenance.asString()));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export default new FirebaseHelper();
|