sample from server.ts
const client = new SecretManagerServiceClient();
async function getFirebaseConfig(): Promise<FirebaseOptions> {
try {
const secretName = 'projects/1234/secrets/firebase-client-config';
const version = 'latest'; // Specify the version
const [versionData] = await client.accessSecretVersion({
name: `${secretName}/versions/${version}`,
});
if (!versionData || !versionData.payload || !versionData.payload.data) {
throw new Error('Secret version payload is missing');
}
const payload = versionData.payload.data.toString();
const firebaseConfig = JSON.parse(payload);
console.log('Firebase Config Server :', firebaseConfig);
return firebaseConfig;
} catch (error) {
console.error(`Error accessing secret version: ${error}`);
throw error;
}
}
export async function app(): Promise<express.Express> {
const server = express();
const serverDistFolder = dirname(fileURLToPath(import.meta.url));
const browserDistFolder = resolve(serverDistFolder, '../browser');
const indexHtml = join(serverDistFolder, 'index.server.html');
// pass firebase config to client with transferState
const firebasePayload = await getFirebaseConfig();
const FIREBASE_CONFIG_KEY = makeStateKey<string>('firebaseConfigKey');
const transferState = new TransferState();
transferState.set(FIREBASE_CONFIG_KEY, ' test ');
console.log('Firebase Config set in TransferState:', firebasePayload);
const commonEngine = new CommonEngine();
server.set('view engine', 'html');
server.set('views', browserDistFolder);
server.get(
'*.*',
express.static(browserDistFolder, {
maxAge: '1y',
})
);
server.get('*', (req, res, next) => {
const { protocol, originalUrl, baseUrl, headers } = req;
commonEngine
.render({
bootstrap,