実現したいこと
Firestoreから単一Documentを取得したいのですが、うまくいきません。
userDocがundefinedになります。
記述方法が間違っているのでしょうか。
よろしくお願いいたします。
該当のソースコード
JS
1async componentDidMount() { 2 // TODO: Firestoreからユーザ情報を取得 3 try { 4 const db = firebase.firestore(); 5 const user = getCurrentUser(); 6 const userDoc = await db.collection("users").doc(user.uid).get(); 7 console.log(userDoc.data()); 8 this.setState({ 9 name: userDoc.data.name, 10 profileImageUrl: userDoc.data.image, 11 }); 12 } catch (error) { 13 console.error(error); 14 } 15 }
うまくいかない、の詳細が分からないとなんともいえません。
何らかのエラーが出ているのか、userDocがundefiendになっているということですか?
情報が足りず申し訳ございません。
userDocがundefinedになっています。
だとすれば書き方は間違っていないと思うので、user.uidに該当するドキュメントがないのだと思います。
一度下記のループを回してみて、user.uidに該当するユーザがないか確認してみてはどうでしょう?
db.collection("user").get().then((docs) => {
if (docs.exists) {
docs.fotEach(doc => {
console.log(doc.data());
})
}
})
ありがとうございます。
上記で確認したところ、おっしゃる通り該当ユーザーがいない(ログインしているか)が取得できていませんでした。
ログインしているかを判定するコード記述順序を変更したところ、うまく取得できました!
ご教授ありがとうございました。
回答1件
あなたの回答
tips
プレビュー