Skip to content

Commit

Permalink
Add basic authentication using Firebase Auth
Browse files Browse the repository at this point in the history
  • Loading branch information
kofta999 committed Jun 21, 2024
1 parent 160fc51 commit c24a90e
Show file tree
Hide file tree
Showing 10 changed files with 202 additions and 202 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
node_modules
.env
.env
serviceAccountKey.json
Binary file modified bun.lockb
Binary file not shown.
7 changes: 7 additions & 0 deletions global.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@ import { z } from "zod";
const envVariables = z.object({
DATABASE_URL: z.string(),
JWT_SECRET: z.string(),
PORT: z.string(),
FIREBASE_API_KEY: z.string(),
FIREBASE_AUTH_DOMAIN: z.string(),
FIREBASE_PROJECT_ID: z.string(),
FIREBASE_STORAGE_BUCKET: z.string(),
FIREBASE_MESSAGING_SENDER_ID: z.string(),
FIREBASE_APP_ID: z.string(),
});

envVariables.parse(process.env);
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
},
"dependencies": {
"@prisma/client": "5.13.0",
"firebase": "^10.12.2",
"firebase-admin": "^12.2.0",
"hono": "^4.3.4",
"zod": "^3.23.6"
Expand Down
36 changes: 34 additions & 2 deletions src/firebase.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,35 @@
import { initializeApp } from "firebase-admin";
import { initializeApp } from "firebase/app";
import admin, { ServiceAccount } from "firebase-admin";
import serviceAccount from "../serviceAccountKey.json";
import {
getAuth,
createUserWithEmailAndPassword,
signInWithEmailAndPassword,
signOut,
sendEmailVerification,
sendPasswordResetEmail,
} from "firebase/auth";

export const firebase = initializeApp();
const firebaseConfig = {
apiKey: process.env.FIREBASE_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,
};

const firebase = initializeApp(firebaseConfig);
const firebaseAdmin = admin.initializeApp({
credential: admin.credential.cert(serviceAccount as ServiceAccount),
});

export {
getAuth,
createUserWithEmailAndPassword,
sendEmailVerification,
sendPasswordResetEmail,
signInWithEmailAndPassword,
signOut,
firebaseAdmin,
};
Loading

0 comments on commit c24a90e

Please sign in to comment.