@@ -5,20 +5,29 @@ import {
5
5
FIREBASE_AUTH_SERVER_ADMIN_APP ,
6
6
FIREBASE_AUTH_SERVER_USER_JWT
7
7
} from './server.common'
8
- import { initializeApp , credential , auth } from 'firebase-admin'
8
+ import { initializeApp , credential , auth , apps } from 'firebase-admin'
9
9
import { EnvironmentService } from '../../environment'
10
10
import { FIREBASE_AUTH_COOKIE_STO_KEY } from './tokens'
11
11
import { CookieService } from '../../cookies/browser'
12
12
13
+ function firebaseAdminAppAlreadyExists ( ) {
14
+ return apps . length ? true : false
15
+ }
16
+
17
+ function repairInlinePem ( str ?: string ) {
18
+ return str ? str . replace ( / \\ n / g, '\n' ) : ''
19
+ }
20
+
13
21
export function fbAdminFactory ( es : EnvironmentService ) {
14
- initializeApp ( {
15
- credential : credential . cert ( {
16
- projectId : es . config . FIREBASE_PROJECT_ID ,
17
- clientEmail : es . config . SERVER_FIREBASE_CLIENT_EMAIL ,
18
- privateKey : es . config . SERVER_FIREBASE_PRIVATE_KEY
19
- } ) ,
20
- databaseURL : es . config . FIREBASE_DATABASE_URL
21
- } )
22
+ ! firebaseAdminAppAlreadyExists &&
23
+ initializeApp ( {
24
+ credential : credential . cert ( {
25
+ projectId : es . config . FIREBASE_PROJECT_ID ,
26
+ clientEmail : es . config . SERVER_FIREBASE_CLIENT_EMAIL ,
27
+ privateKey : repairInlinePem ( es . config . SERVER_FIREBASE_PRIVATE_KEY )
28
+ } ) ,
29
+ databaseURL : es . config . FIREBASE_DATABASE_URL
30
+ } )
22
31
return auth ( )
23
32
}
24
33
0 commit comments