From 975f4c8285739869aa82a6f3ba29c46f9055f398 Mon Sep 17 00:00:00 2001 From: Tiago Ribeiro Date: Wed, 29 May 2024 09:06:46 +0100 Subject: [PATCH] Updated Firebase to use a service account depending on the environment --- .../{serviceAccountKey.json => platform.json} | 2 +- src/constants/staging.json | 13 +++++++++++++ src/firebase/index.ts | 9 +++++---- src/pages/(admin)/Lists/UserList.tsx | 3 ++- 4 files changed, 21 insertions(+), 6 deletions(-) rename src/constants/{serviceAccountKey.json => platform.json} (99%) create mode 100644 src/constants/staging.json diff --git a/src/constants/serviceAccountKey.json b/src/constants/platform.json similarity index 99% rename from src/constants/serviceAccountKey.json rename to src/constants/platform.json index 2e8fe016..71aab34b 100644 --- a/src/constants/serviceAccountKey.json +++ b/src/constants/platform.json @@ -10,4 +10,4 @@ "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-3ml0u%40storied-phalanx-349916.iam.gserviceaccount.com", "universe_domain": "googleapis.com" -} +} \ No newline at end of file diff --git a/src/constants/staging.json b/src/constants/staging.json new file mode 100644 index 00000000..f1489a6b --- /dev/null +++ b/src/constants/staging.json @@ -0,0 +1,13 @@ +{ + "type": "service_account", + "project_id": "encoach-staging", + "private_key_id": "5718a649419776df9637589f8696a258a6a70f6c", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC2C6Es2gY8lLvH\ndVilNtRNm9glSaPXMNw2PzZZbSGuG1uGPFaCzlq1lOb2u17YfMG4GriKIMjIQKXF\nqdvxA8CAmAFRuDjUGmpbO/X1ZW7amOs5Bjed2BYmL01dEqzzwwh7rEfNDjeghRPx\n1uKzH8A6TLT5xq+74I5K1CIgiljBpZimsERu2SDawjkdtZfA7qoylA46Nq66LuwQ\nVyv9CK2SZNpBcT3sunCmRsrCzmSTzKdbcqRPdqUKgZOH/Rjp0sw9VuUgwoxdGZV3\n5SJjObo5ceZ1OSiJm7GwLzp7uq16sqycgSYwppNLI5OtzOfSuWbGD4+a044t2Mlq\n9PHXv7H/AgMBAAECggEAAfhKlFwq8MaL6PggRJq9HbaKgQ4fcOmCmy8AQmPNF1UM\nyVKSKGndjxUfPLCWsaaunUnjZlHoKkvndKXxDyttuVaBE9EiWEqNjRLZ3KpuJ9Jm\nH+CtLbmUCnISQb1n1AlvvZAwhLZbLBL/PhYyWiLapybZAdJAaOWLVKGgBD8gVRQW\nJFCqnszX1O2YlpWHutb979R4qoY/XAf94gyMkTpXZwuETvFqZbau2vxRZ8qARix3\nmic881PwiF6Cod8UPCS9yMK+Q+Se6SomwXU9PCmlummn9xmQBAxYy8gIAVs/J9Fg\n5SvhnImAPDd+zIzzw2cHCiruNWIhroMVZDZJgWdY1QKBgQDjTKKeFOur3ijJJL2/\nWg1SE2jLP0GpXzM5YMx6jdOCNDCzugPngRucRXiTkJ2FnUgyMcQyi6hyrbWXN/6z\nXhx5fwLB4tnTcqOMvNfcay5mDk3RW9ZZJxayB54Sf1Nm/4xiDBnGPT+iHQvK+/pT\nwScWznFkmk60E796o76OLn3PEwKBgQDNCC2uPq+uOcCopIO8HH88gqdxTvpbeHUU\nrdJOmr1VtGNuvay/mfpva9+VEtGbZTFzjhfvfCEIjpj3Llh8Flb9EYa6BmscBiyp\ngszEeFuB3zHndlSCZPnGJ7JiRAdPAEgG3Gl/r9th6PDaEMq0MFS5i7GGhPBIRYCG\nUtmY5eVy5QKBgH5Nuls/YsnJFD7ZNLscziQadvPhvZnhNbSfjmBXaP2EBMAKEFtX\nCcGndN4C0RVLFbAWqWAw7LR0xGA4FEcVd5snsZ+Nb98oZ6sv0H9B67F4J1O7xXsa\n1mitBPBgYjbsr9RXxwa6SB7MJx5vMGXUAeWRZ78wY6V7B76dOKkHOo+TAoGBAJf5\nBOsPueZZFm2qK58GPGVcrsI0+StNuPLP+H+dANQC9mTCIMaQWmm2Oq5jmYwmUKZH\nX4R6rH2MPOOSrbGkWWwRTpyaX1ARX49xzVefoqw8BOB8/Bz+vYjcKcPeitBK9Bhp\nzaUAc4s6PzRTl/xBirtRSQ/df8ECC0cFKBbF6PHlAoGAGqnlpo+k8vAtg6ulCuGu\nx2Y/c5UmvXGHk60pccnW3UtENSDnl99OgMfBz8/qLAMWs6DUQ/kvSlHQPmMBHRWZ\nNTr6ceGXyNs4KdYoj1K7AU3c0Lm0wyQ2giQMoOOUQAm98Xr8z5aiihj10hHPmzzL\n9kwpOmZpjNmC/ERD69imWhY=\n-----END PRIVATE KEY-----\n", + "client_email": "firebase-adminsdk-8rs9e@encoach-staging.iam.gserviceaccount.com", + "client_id": "108221424237414412378", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-8rs9e%40encoach-staging.iam.gserviceaccount.com", + "universe_domain": "googleapis.com" +} \ No newline at end of file diff --git a/src/firebase/index.ts b/src/firebase/index.ts index 3b29080b..95b1a515 100644 --- a/src/firebase/index.ts +++ b/src/firebase/index.ts @@ -1,8 +1,9 @@ import {initializeApp} from "firebase/app"; import * as admin from "firebase-admin/app"; -import { getStorage } from "firebase/storage"; +import {getStorage} from "firebase/storage"; -const serviceAccount = require("@/constants/serviceAccountKey.json"); +const stagingServiceAccount = require("@/constants/staging.json"); +const platformServiceAccount = require("@/constants/platform.json"); const firebaseConfig = { apiKey: process.env.FIREBASE_PUBLIC_API_KEY || "", @@ -16,8 +17,8 @@ const firebaseConfig = { export const app = initializeApp(firebaseConfig, Math.random().toString()); export const adminApp = admin.initializeApp( { - credential: admin.cert(serviceAccount), + credential: admin.cert(process.env.ENVIRONMENT === "platform" ? platformServiceAccount : stagingServiceAccount), }, Math.random().toString(), ); -export const storage = getStorage(app); \ No newline at end of file +export const storage = getStorage(app); diff --git a/src/pages/(admin)/Lists/UserList.tsx b/src/pages/(admin)/Lists/UserList.tsx index 9ade7c31..e71055c3 100644 --- a/src/pages/(admin)/Lists/UserList.tsx +++ b/src/pages/(admin)/Lists/UserList.tsx @@ -91,7 +91,8 @@ export default function UserList({user, filters = []}: {user: User; filters?: (( }) .catch(() => { toast.error("Something went wrong!", {toastId: "delete-error"}); - }); + }) + .finally(reload); }; const updateAccountType = (user: User, type: Type) => {