質問編集履歴

1

最後の追記を追加しました。

2021/02/27 01:53

投稿

F_Yohei
F_Yohei

スコア14

test CHANGED
File without changes
test CHANGED
@@ -102,6 +102,110 @@
102
102
 
103
103
  ```
104
104
 
105
+
106
+
107
+ ###追記
108
+
109
+ 新規登録の時に自分のuidをデータベースに保存するようにしました。
110
+
111
+ ```vue
112
+
113
+ methods: {
114
+
115
+ async signUp() {
116
+
117
+ await this.$store.dispatch('signUp', { username:this.username, email:this.email, password:this.password });
118
+
119
+ const db = firebase.firestore();
120
+
121
+ const user = firebase.auth().currentUser;
122
+
123
+ db.collection('myData').doc(user.uid).set({
124
+
125
+ uid: user.uid,
126
+
127
+ userName: user.displayName,
128
+
129
+ email: user.email,
130
+
131
+ myWallet: 300
132
+
133
+ });
134
+
135
+ this.$store.dispatch('getMyWallet', user.uid);
136
+
137
+ this.$router.push('/home');
138
+
139
+ }
140
+
141
+ }
142
+
143
+ ```
144
+
145
+
146
+
147
+ ```vuex
148
+
149
+ state() {
150
+
151
+ myWallet: '',
152
+
153
+ },
154
+
155
+ getters: {
156
+
157
+ getMyWallet: state => state.myWallet.myWallet,
158
+
159
+ },
160
+
161
+ mutations: {
162
+
163
+ getMyWallet(state, doc) {
164
+
165
+ state.myWallet = doc.data();
166
+
167
+ console.log(doc.data())
168
+
169
+ }
170
+
171
+ },
172
+
173
+ actions: {
174
+
175
+ async getMyWallet({ commit }, uid) {
176
+
177
+ const db = firebase.firestore();
178
+
179
+ const doc = await db
180
+
181
+ .collection('myData')
182
+
183
+ .doc(uid)
184
+
185
+ .get();
186
+
187
+ commit('getMyWallet', doc);
188
+
189
+ }
190
+
191
+ }
192
+
193
+ ```
194
+
195
+ 上記の通りコードを変更したところ新規登録してホーム画面に遷移した際に自分の残高が表示されるようになったのですが、一つだけ問題が起きました。
196
+
197
+
198
+
199
+ 例えば、一度ログアウトして'myWallet: 300'を仮に1000円にして再度新規登録をした時に前の300円が表示されてしまいます。
200
+
201
+ そして、firestoreとコンソールで確認したところどちらも300円で登録されていました。
202
+
203
+ このような挙動になるのが何故なのかわからないです。
204
+
205
+ ###
206
+
207
+
208
+
105
209
  whereを使わずに特定のドキュメントIDを指定すると該当するドキュメントを取得することはできるのですが、where句にするとエラーメッセージが出てしまいます。
106
210
 
107
211