質問編集履歴

5

import

2020/12/14 08:18

投稿

akakakakak
akakakakak

スコア0

test CHANGED
File without changes
test CHANGED
@@ -126,6 +126,8 @@
126
126
 
127
127
  import { mapGetters } from 'vuex'
128
128
 
129
+ import Theheader from '~/components/TheHeader.vue'
130
+
129
131
 
130
132
 
131
133
  export default {
@@ -320,6 +322,8 @@
320
322
 
321
323
  import { mapGetters } from 'vuex'
322
324
 
325
+ import Theheader from '~/components/TheHeader.vue'
326
+
323
327
  ```
324
328
 
325
329
 

4

import

2020/12/14 08:18

投稿

akakakakak
akakakakak

スコア0

test CHANGED
File without changes
test CHANGED
@@ -314,6 +314,16 @@
314
314
 
315
315
 
316
316
 
317
+ ```
318
+
319
+ import moment from '~/plugins/moment'
320
+
321
+ import { mapGetters } from 'vuex'
322
+
323
+ ```
324
+
325
+
326
+
317
327
  で読み込めてる状態かと思うのですがなんらかの過不足があるからエラーが出ているのだと思います。(全く見当違いなところで問題が起きている可能性もありますが)。
318
328
 
319
329
 

3

追記

2020/12/14 08:02

投稿

akakakakak
akakakakak

スコア0

test CHANGED
File without changes
test CHANGED
@@ -318,4 +318,10 @@
318
318
 
319
319
 
320
320
 
321
+ ・追記
322
+
323
+ firebaseの方でメール/パスワードでの認証を有効にしないと認証できないという記事を読み有効にしたのですが問題は解決できませんでした
324
+
325
+
326
+
321
327
  この問題の解決法がわかる方がいらっしゃいましたらアドバイスお願いします。

2

ログインページのコード修正

2020/12/14 07:01

投稿

akakakakak
akakakakak

スコア0

test CHANGED
File without changes
test CHANGED
@@ -36,176 +36,280 @@
36
36
 
37
37
 
38
38
 
39
+ <template>
40
+
39
- <template lang="pug">
41
+ <section class="container">
42
+
43
+ <div v-if="isWaiting">
44
+
45
+ <p>読み込み中</p>
46
+
47
+ </div>
48
+
49
+ <div v-else>
50
+
51
+ <div v-if="!isLogin">
52
+
53
+ <div>
54
+
55
+ <p>
56
+
57
+ <input
58
+
59
+ v-model="email"
60
+
61
+ type="text"
62
+
63
+ placeholder="email"
64
+
65
+ >
66
+
67
+ </p>
68
+
69
+ <p>
70
+
71
+ <input
72
+
73
+ v-model="password"
74
+
75
+ type="password"
76
+
77
+ placeholder="password"
78
+
79
+ >
80
+
81
+ </p>
82
+
83
+ <p>
84
+
85
+ <input
86
+
87
+ id="checkbox"
88
+
89
+ v-model="register"
90
+
91
+ type="checkbox"
92
+
93
+ >
94
+
95
+ <label for="checkbox">新規登録</label>
96
+
97
+ </p>
98
+
99
+ <button @click="passwordLogin">{{ register ? '新規登録' : 'ログイン' }}</button>
100
+
101
+ <p>{{ errorMessage }}</p>
102
+
103
+ </div>
104
+
105
+ </div>
106
+
107
+ <div v-else>
108
+
109
+ <p>{{ user.email }}でログイン中</p>
110
+
111
+ <button @click="logOut">ログアウト</button>
112
+
113
+ </div>
114
+
115
+ </div>
116
+
117
+ </section>
118
+
119
+ </template>
120
+
121
+
122
+
123
+ <script>
124
+
125
+ import moment from '~/plugins/moment'
126
+
127
+ import { mapGetters } from 'vuex'
128
+
129
+
130
+
131
+ export default {
132
+
133
+ asyncData () {
134
+
135
+ return {
136
+
137
+ register: false,
138
+
139
+ isWaiting: true,
140
+
141
+ isLogin: false,
142
+
143
+ user: [],
144
+
145
+ email: '',
146
+
147
+ password: '',
148
+
149
+ errorMessage: ''
150
+
151
+ }
152
+
153
+ },
154
+
155
+ mounted: function () {
156
+
157
+ firebase.auth().onAuthStateChanged(user => {
158
+
159
+ this.isWaiting = false
160
+
161
+ this.errorMessage = ''
162
+
163
+ if (user) {
164
+
165
+ this.isLogin = true
166
+
167
+ this.user = user
168
+
169
+ } else {
170
+
171
+ this.isLogin = false
172
+
173
+ this.user = []
174
+
175
+ };
176
+
177
+ })
178
+
179
+ },
180
+
181
+ methods: {
182
+
183
+ passwordLogin () {
184
+
185
+ const email = this.email
186
+
187
+ const password = this.password
188
+
189
+ if (this.register) {
190
+
191
+ firebase.auth().createUserWithEmailAndPassword(email, password).catch(function (error) {
192
+
193
+ const errorMessage = error.message
194
+
195
+ this.errorMessage = errorMessage
196
+
197
+ }.bind(this))
198
+
199
+ } else {
200
+
201
+ firebase.auth().signInWithEmailAndPassword(email, password).catch(function (error) {
202
+
203
+ const errorMessage = error.message
204
+
205
+ this.errorMessage = errorMessage
206
+
207
+ }.bind(this))
208
+
209
+ }
210
+
211
+ },
212
+
213
+ logOut () {
214
+
215
+ firebase.auth().signOut()
216
+
217
+ }
218
+
219
+ }
220
+
221
+ }
222
+
223
+ </script>
224
+
225
+ ```
226
+
227
+
228
+
229
+ ```
230
+
231
+ **app/componensts/TheHeader.vue**
232
+
233
+
234
+
235
+ <template>
236
+
237
+ <el-menu mode="horizontal" :router="true">
238
+
239
+ <el-menu-item index="1" style="pointer-events:none;">
240
+
241
+ Football-App
242
+
243
+ </el-menu-item>
244
+
245
+ <el-menu-item index="2" :route="{ path: '/posts/' }">
246
+
247
+ 投稿一覧
248
+
249
+ </el-menu-item>
250
+
251
+
252
+
253
+ <no-ssr>
254
+
255
+ <el-menu-item index="4" style="float: right;" :route="{ path: `/users/${user.id}` }" v-if="user">
256
+
257
+ <span>{{user.id}}</span>
258
+
259
+ </el-menu-item>
260
+
261
+ <el-menu-item index="4" style="float: right;" :route="{ path: '/' }" v-else>
262
+
263
+ <span>ログイン</span>
264
+
265
+ </el-menu-item>
266
+
267
+ </no-ssr>
268
+
269
+ <el-menu-item index="5" style="float: right" :route="{ path: '/posts/new' }">
270
+
271
+ 新規投稿
272
+
273
+ </el-menu-item>
274
+
275
+ </el-menu>
276
+
277
+ </template>
278
+
279
+
280
+
281
+ <script>
282
+
283
+ import { mapGetters } from 'vuex'
284
+
285
+
286
+
287
+ export default {
288
+
289
+ computed: {
290
+
291
+ ...mapGetters(['user'])
292
+
293
+ }
294
+
295
+ }
296
+
297
+ </script>
298
+
299
+ ```
300
+
301
+
302
+
303
+ ### 試したこと
304
+
305
+
306
+
307
+ このエラーについて調べてみたところ、コンポーネントの読み込みがうまくいかず起こるエラーのようですが、上記のコードにも記した通り
308
+
309
+ ```
40
310
 
41
311
  <div slot="header" class="clearfix">
42
312
 
43
- </div>
44
-
45
- <div>
46
-
47
- <p>メールアドレス</p>
48
-
49
- <input v-model="form.email">
50
-
51
- <p>パスワード</p>
52
-
53
- <input v-model="form.password" type="password">
54
-
55
- <input type="button" @click="login" value="ログイン">
56
-
57
- </div>
58
-
59
- </template>
60
-
61
-
62
-
63
- <script>
64
-
65
- import moment from '~/plugins/moment'
66
-
67
- import { mapGetters, mapActions } from 'vuex'
68
-
69
- export default {
70
-
71
- middleware({ store, redirect }) {
72
-
73
- if(store.$auth.loggedIn) {
74
-
75
- redirect('/');
76
-
77
- }
78
-
79
- },
80
-
81
- data() {
82
-
83
- return {
84
-
85
- form: {
86
-
87
- email: '',
88
-
89
- password: ''
90
-
91
- }
92
-
93
- }
94
-
95
- },
96
-
97
- methods: {
98
-
99
- async login() {
100
-
101
- try {
102
-
103
- const response = await this.$auth.loginWith('local', { data: this.form });
104
-
105
- console.log(response);
106
-
107
- } catch(error) {
108
-
109
- console.log(error);
110
-
111
- }
112
-
113
- }
114
-
115
- }
116
-
117
- }
118
-
119
- </script>
120
-
121
- ```
122
-
123
-
124
-
125
- ```
126
-
127
- **app/componensts/TheHeader.vue**
128
-
129
-
130
-
131
- <template>
132
-
133
- <el-menu mode="horizontal" :router="true">
134
-
135
- <el-menu-item index="1" style="pointer-events:none;">
136
-
137
- Football-App
138
-
139
- </el-menu-item>
140
-
141
- <el-menu-item index="2" :route="{ path: '/posts/' }">
142
-
143
- 投稿一覧
144
-
145
- </el-menu-item>
146
-
147
-
148
-
149
- <no-ssr>
150
-
151
- <el-menu-item index="4" style="float: right;" :route="{ path: `/users/${user.id}` }" v-if="user">
152
-
153
- <span>{{user.id}}</span>
154
-
155
- </el-menu-item>
156
-
157
- <el-menu-item index="4" style="float: right;" :route="{ path: '/' }" v-else>
158
-
159
- <span>ログイン</span>
160
-
161
- </el-menu-item>
162
-
163
- </no-ssr>
164
-
165
- <el-menu-item index="5" style="float: right" :route="{ path: '/posts/new' }">
166
-
167
- 新規投稿
168
-
169
- </el-menu-item>
170
-
171
- </el-menu>
172
-
173
- </template>
174
-
175
-
176
-
177
- <script>
178
-
179
- import { mapGetters } from 'vuex'
180
-
181
-
182
-
183
- export default {
184
-
185
- computed: {
186
-
187
- ...mapGetters(['user'])
188
-
189
- }
190
-
191
- }
192
-
193
- </script>
194
-
195
- ```
196
-
197
-
198
-
199
- ### 試したこと
200
-
201
-
202
-
203
- このエラーについて調べてみたところ、コンポーネントの読み込みがうまくいかず起こるエラーのようですが、上記のコードにも記した通り
204
-
205
- ```
206
-
207
- <div slot="header" class="clearfix">
208
-
209
313
  ```
210
314
 
211
315
 

1

誤字訂正

2020/12/14 06:58

投稿

akakakakak
akakakakak

スコア0

test CHANGED
File without changes
test CHANGED
@@ -208,13 +208,7 @@
208
208
 
209
209
  ```
210
210
 
211
- ```
211
+
212
-
213
- import moment from '~/plugins/moment'
214
-
215
- import { mapGetters, mapActions } from 'vuex'
216
-
217
- ```
218
212
 
219
213
  で読み込めてる状態かと思うのですがなんらかの過不足があるからエラーが出ているのだと思います。(全く見当違いなところで問題が起きている可能性もありますが)。
220
214