@@ -11,14 +11,20 @@ export abstract class FirebaseFunction<Parameters, ReturnType> {
11
11
12
12
protected logger = new Logger ( new FunctionsLogger ( ) ) ;
13
13
14
+ public userId : string | null = null ;
15
+
14
16
public abstract parametersBuilder : ITypeBuilder < Flattable . Flatten < Parameters > , Parameters > ;
15
17
18
+ protected constructor ( functionName : string ) {
19
+ this . logger . notice ( `${ functionName } .constructor` ) ;
20
+ }
21
+
16
22
public abstract execute ( parameters : Parameters ) : Promise < ReturnType > ;
17
23
}
18
24
19
25
export namespace FirebaseFunction {
20
26
21
- export type Constructor < Parameters , ReturnType > = new ( userId : string | null ) => FirebaseFunction < Parameters , ReturnType > ;
27
+ export type Constructor < Parameters , ReturnType > = new ( ) => FirebaseFunction < Parameters , ReturnType > ;
22
28
23
29
export class ConstructorWrapper < Parameters , ReturnType > {
24
30
@@ -45,7 +51,8 @@ export namespace FirebaseFunction {
45
51
throw new FunctionsError ( 'failed-precondition' , 'Invalid MAC tag' ) ;
46
52
47
53
const userId = request . auth !== undefined ? request . auth . uid : null ;
48
- const firebaseFunction = new FirebaseFunction ( userId ) ;
54
+ const firebaseFunction = new FirebaseFunction ( ) ;
55
+ firebaseFunction . userId = userId ;
49
56
const parameters = firebaseFunction . parametersBuilder . build ( request . data . parameters ) ;
50
57
return firebaseFunction . execute ( parameters ) ;
51
58
} ) ;
0 commit comments