質問編集履歴
1
コードの詳細を追記致しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
ログイン中のユーザーの情報をfirebaseから取得し、Vueのdataにオブジェクトとして格納したいのですが方法が分からず困っております。
|
4
4
|
|
5
|
-
firebaseには以下のようなusersコレクションがあり、その情報をcurrentUser.ageやcurrentUser.nameなどのような形で使いたい
|
5
|
+
firebaseには以下のようなusersコレクションがあり、その情報をcurrentUser.ageやcurrentUser.nameなどのような形で使いたいです。
|
6
6
|
|
7
7
|
usersコレクション
|
8
8
|
------taro@taro.comドキュメント
|
@@ -12,7 +12,14 @@
|
|
12
12
|
name: '花子',
|
13
13
|
age: 25
|
14
14
|
|
15
|
+
以下のようなコードで、console.log(doc.data());をした時にはきちんとコンソールにオブジェクトのデータが表示されるのですが、this.currentUser = doc.data();をすると次のエラーが出ます。
|
15
16
|
|
17
|
+
Error getting document: TypeError: Cannot set property 'a' of undefined
|
18
|
+
|
19
|
+
原因がわかる方がいらっしゃいましたらお知恵を貸していただけると助かります。
|
20
|
+
またもっといい書き方があればお教えいただけると幸いです。
|
21
|
+
宜しくお願い致します。
|
22
|
+
|
16
23
|
```ここに言語を入力
|
17
24
|
<script>
|
18
25
|
import firebase from 'firebase'
|
@@ -21,17 +28,26 @@
|
|
21
28
|
export default {
|
22
29
|
data () {
|
23
30
|
return {
|
31
|
+
currentUserEmail: '',
|
24
32
|
currentUser: {}, //ここに現在のユーザー情報を格納したい
|
25
33
|
}
|
26
34
|
},
|
27
35
|
|
28
36
|
created() {
|
29
37
|
if(firebase.auth().currentUser){
|
38
|
+
this.currentUserEmail = firebase.auth().currentUser.email; //ログイン中ユーザのメールアドレスを取得
|
39
|
+
var currentUserDoc = db.collection('users').doc(this.currentUserEmail); //ログイン中ユーザのドキュメントを代入
|
40
|
+
|
41
|
+
currentUserDoc.get().then(function(doc) {
|
42
|
+
if (doc.exists) {
|
43
|
+
|
44
|
+
console.log(doc.data());
|
30
|
-
|
45
|
+
this.currentUser = doc.data();
|
46
|
+
|
47
|
+
} else {...}
|
31
48
|
}
|
32
49
|
}
|
33
50
|
}
|
51
|
+
</script>
|
34
52
|
|
35
|
-
```
|
53
|
+
```
|
36
|
-
|
37
|
-
お知恵を貸していただけると助かります。宜しくお願い致します。
|