Skip to content

Commit

Permalink
chore: enable firebase admin by providing credentials
Browse files Browse the repository at this point in the history
  • Loading branch information
ijemmao committed May 5, 2024
1 parent 927b696 commit 4c06d25
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 2 deletions.
1 change: 1 addition & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
FIREBASE_CONFIG: ${{ secrets.FIREBASE_CONFIG }}
FIREBASE_SERVICE_ACCOUNT: ${{ secrets.FIREBASE_SERVICE_ACCOUNT }}
GCLOUD_PROJECT: ${{ secrets.GCLOUD_PROJECT }}
MAIN_KEY: ${{ secrets.MAIN_KEY }}
MONGO_URI: ${{ secrets.MONGO_URI }}
Expand Down
2 changes: 2 additions & 0 deletions src/config.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/* eslint-disable max-len */
import * as functions from 'firebase-functions';
import './shared/utils/wrapConsole';

Expand Down Expand Up @@ -58,6 +59,7 @@ export const MONGO_URI = isTestingEnvironment
? LOCAL_MONGO_URI.concat(QUERIES)
: config?.env?.mongo_uri || LOCAL_MONGO_URI.concat(QUERIES);
export const FIREBASE_CONFIG = config?.env?.firebase_config; // Provide your own Firebase Config
export const FIREBASE_SERVICE_ACCOUNT = config?.env?.firebase_service_account; // Provide your own Firebase Service Account
export const CLIENT_TEST = config?.env?.client_test;

export const CORS_CONFIG = {
Expand Down
14 changes: 14 additions & 0 deletions src/pages/dashboard/error.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import React from 'react';
import { Box, Text } from '@chakra-ui/react';
import { FiAlertTriangle } from 'react-icons/fi';

const Error = () => (
<Box className="w-full h-full flex flex-col justify-center items-center">
<FiAlertTriangle size="200px" color="var(--chakra-colors-gray-400)" />
<Text color="gray.400" fontSize="2xl" userSelect="none">
An error occurred. Unable to load the page.
</Text>
</Box>
);

export default Error;
3 changes: 2 additions & 1 deletion src/pages/dashboard/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React from 'react';
import { Box, SlideFade } from '@chakra-ui/react';
import { useAtom } from 'jotai';
import Error from './error';
import DashboardMenu from './components/DashboardMenu';
import AuthManager from '../managers/AuthManager';
import DashboardNavigationMenu from './components/DashboardNavigationMenu';
Expand Down Expand Up @@ -49,7 +50,7 @@ const DashboardLayout = ({
</Box>
<AuthManager>
<SlideFade in offsetX="-20px" offsetY="0px" className="w-full h-full p-4">
{developer ? children({ developer }) : null}
{developer ? children({ developer }) : <Error />}
</SlideFade>
</AuthManager>
</Box>
Expand Down
11 changes: 10 additions & 1 deletion src/services/firebase-admin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,21 @@ import {
getApps as getAdminApps,
getApp as getAdminApp,
} from 'firebase-admin/app';
import admin from 'firebase-admin';
import { STAGING_FIREBASE_CONFIG, PRODUCTION_FIREBASE_CONFIG } from './firebaseConfigs';
import { FIREBASE_SERVICE_ACCOUNT, isProduction } from '../config';
import firebaseSdkConfig from '../../firebase.json';

const firebaseConfig = isProduction ? PRODUCTION_FIREBASE_CONFIG : STAGING_FIREBASE_CONFIG;
const databaseURL = `http://localhost:${firebaseSdkConfig.emulators.firestore.port}/?ns=${firebaseConfig.projectId}`;
const adminApps = getAdminApps();
let currentAdminApp;
// Initialize Admin Firebase
if (!adminApps.length) {
currentAdminApp = initializeAdminApp();
currentAdminApp = initializeAdminApp({
credential: admin.credential.cert(JSON.parse(FIREBASE_SERVICE_ACCOUNT)),
databaseURL,
});
} else {
currentAdminApp = getAdminApp();
}
Expand Down

0 comments on commit 4c06d25

Please sign in to comment.