MMPG Softwares server admin library
Install the package with npm by running: npm install @mmpg-soft/server-admin@latest
This package requires:
- Next js
- Firebase Admin SDK
In order to be able to use this package, you need to adhere to the following instructions
In your firebase admin sdk config file, define your firestore database id in the function setServerFirestoreDatabaseId("YourFirestoreDatabaseId")
Example:
import { setServerFirestoreDatabaseId } from '@mmpg-soft/server-admin';
import {
cert,
getApp,
getApps,
initializeApp,
AppOptions,
} from 'firebase-admin/app';
import { firestoreDatabaseId } from './firebase';
export const firebaseAdminConfig = {
type: process.env.NEXT_FIREBASE_ADMIN_TYPE,
project_id: process.env.NEXT_FIREBASE_ADMIN_PROJECT_ID,
private_key_id: process.env.NEXT_FIREBASE_ADMIN_PRIVATE_KEY_ID,
private_key: process.env.NEXT_FIREBASE_ADMIN_PRIVATE_KEY,
client_email: process.env.NEXT_FIREBASE_ADMIN_CLIENT_EMAIL,
client_id: process.env.NEXT_FIREBASE_ADMIN_CLIENT_ID,
auth_uri: process.env.NEXT_FIREBASE_ADMIN_AUTH_URI,
token_uri: process.env.NEXT_FIREBASE_ADMIN_TOKEN_URI,
auth_provider_x509_cert_url:
process.env.NEXT_FIREBASE_ADMIN_AUTH_PROVIDER_X509_CERT_URL,
client_x509_cert_url: process.env.NEXT_FIREBASE_ADMIN_CLIENT_X509_CERT_URL,
universe_domain: process.env.NEXT_FIREBASE_ADMIN_UNIVERSE_DOMAIN,
} as AppOptions;
export const initFirebaseAdminApp = () => {
setServerFirestoreDatabaseId(firestoreDatabaseId);
if (getApps().length > 0) {
return getApp();
}
const credential = cert(firebaseAdminConfig);
return initializeApp({ credential });
};
In all your project api routes, you need to call the function initFirebaseAdminApp()
import { initFirebaseAdminApp } from '@/config/firebase-admin';
import { NextRequest } from 'next/server';
export async function GET(request: NextRequest) {
initFirebaseAdminApp();
...
}
After fullfilling all the prerequesties, you can start using all the package features.