33 lines
1.2 KiB
TypeScript
33 lines
1.2 KiB
TypeScript
import {initializeApp} from "firebase/app";
|
|
import * as admin from "firebase-admin/app";
|
|
import {getStorage} from "firebase/storage";
|
|
import { base64 } from "@firebase/util";
|
|
|
|
const stagingServiceAccount = require("@/constants/staging.json");
|
|
const platformServiceAccount = require("@/constants/platform.json");
|
|
|
|
const firebaseConfig = {
|
|
apiKey: process.env.FIREBASE_PUBLIC_API_KEY || "",
|
|
authDomain: process.env.FIREBASE_AUTH_DOMAIN || "",
|
|
projectId: process.env.FIREBASE_PROJECT_ID || "",
|
|
storageBucket: process.env.FIREBASE_STORAGE_BUCKET || "",
|
|
messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID || "",
|
|
appId: process.env.FIREBASE_APP_ID || "",
|
|
};
|
|
|
|
export const app = initializeApp(firebaseConfig, Math.random().toString());
|
|
export const adminApp = admin.initializeApp(
|
|
{
|
|
credential: admin.cert(process.env.ENVIRONMENT === "platform" ? platformServiceAccount : stagingServiceAccount),
|
|
},
|
|
Math.random().toString(),
|
|
);
|
|
export const storage = getStorage(app);
|
|
|
|
export const firebaseAuthScryptParams = {
|
|
memCost: Number(process.env.FIREBASE_SCRYPT_MEM_COST),
|
|
rounds: Number(process.env.FIREBASE_SCRYPT_ROUNDS),
|
|
saltSeparator: process.env.FIREBASE_SCRYPT_B64_SALT_SEPARATOR!,
|
|
signerKey: process.env.FIREBASE_SCRYPT_B64_SIGNER_KEY!,
|
|
}
|