@@ -6,20 +6,17 @@ const VuexModule = createModule({
6
6
strict : false ,
7
7
target : 'nuxt'
8
8
} )
9
- type Email = string | null
9
+ type Email = string
10
10
type EmailVerified = boolean
11
- type DisplayName = string | null
11
+ type DisplayName = string
12
12
type AllowAccess = AllowAccessData [ ]
13
13
type AllowAccessData = {
14
14
classId : string
15
15
schoolName : string
16
16
className : string
17
17
}
18
- type AllowAccessFromUsers = {
19
- classId : string
20
- schoolName : string
21
- }
22
- type Uid = string | null
18
+
19
+ type Uid = string
23
20
24
21
interface User {
25
22
email : Email
@@ -35,11 +32,11 @@ interface userData {
35
32
}
36
33
37
34
export class UserStore extends VuexModule implements User {
38
- email : Email = null
35
+ email : Email = ''
39
36
emailVerified : EmailVerified = false
40
- displayName : DisplayName = null
37
+ displayName : DisplayName = ''
41
38
allowAccess : AllowAccess = [ ]
42
- uid : Uid = null
39
+ uid : Uid = ''
43
40
44
41
public get isAuthenticated ( ) : boolean {
45
42
return ! ! this . email && ! ! this . uid
@@ -71,28 +68,28 @@ export class UserStore extends VuexModule implements User {
71
68
. doc ( user . uid )
72
69
. get ( )
73
70
74
- const allowAccessData : AllowAccessFromUsers [ ] = data . get ( 'allow_access' )
71
+ const allowAccessData : string [ ] = data . get ( 'allow_access' )
75
72
const allowAccess = [ ]
76
73
for ( const value of allowAccessData ) {
77
74
const classData = await firebase
78
75
. firestore ( )
79
76
. collection ( 'classData' )
80
- . doc ( value . classId )
77
+ . doc ( value )
81
78
. get ( )
82
79
const editorClassData = await firebase
83
80
. firestore ( )
84
81
. collection ( 'editorClassData' )
85
- . doc ( value . classId )
82
+ . doc ( value )
86
83
. get ( )
87
84
allowAccess . push ( {
88
- classId : value . classId ,
85
+ classId : value ,
89
86
schoolName : editorClassData . get ( 'schoolName' ) ,
90
87
className : classData . get ( 'className' )
91
88
} )
92
89
}
93
90
94
91
this . setUser ( {
95
- email : user . email ,
92
+ email : user . email ? user . email : '' ,
96
93
emailVerified : user . emailVerified ,
97
94
displayName : data . get ( 'username' ) ,
98
95
allowAccess,
@@ -108,21 +105,21 @@ export class UserStore extends VuexModule implements User {
108
105
. doc ( user . user_id )
109
106
. get ( )
110
107
111
- const allowAccessData : AllowAccessFromUsers [ ] = data . get ( 'allow_access' )
108
+ const allowAccessData : string [ ] = data . get ( 'allow_access' )
112
109
const allowAccess = [ ]
113
110
for ( const value of allowAccessData ) {
114
111
const classData = await firebase
115
112
. firestore ( )
116
113
. collection ( 'classData' )
117
- . doc ( value . classId )
114
+ . doc ( value )
118
115
. get ( )
119
116
const editorClassData = await firebase
120
117
. firestore ( )
121
118
. collection ( 'editorClassData' )
122
- . doc ( value . classId )
119
+ . doc ( value )
123
120
. get ( )
124
121
allowAccess . push ( {
125
- classId : value . classId ,
122
+ classId : value ,
126
123
schoolName : editorClassData . get ( 'schoolName' ) ,
127
124
className : classData . get ( 'className' )
128
125
} )
@@ -141,10 +138,10 @@ export class UserStore extends VuexModule implements User {
141
138
public async logout ( ) {
142
139
await firebase . auth ( ) . signOut ( )
143
140
this . setUser ( {
144
- uid : null ,
145
- email : null ,
141
+ uid : '' ,
142
+ email : '' ,
146
143
emailVerified : false ,
147
- displayName : null ,
144
+ displayName : '' ,
148
145
allowAccess : [ ]
149
146
} )
150
147
}
0 commit comments