Firestoreでdoc.id, "=>", doc.data() がなぜundefinedを回避できるのか分からない
Q&A
Closed
解決したいこと
Firestoreでクエリを用いて複数のドキュメントを取得する際に、ドキュメントIDを一緒に取得したいのですが方法がわかりません。
正確には、Firebaseの公式ドキュメントにあるconsole.log(doc.id, "=>", doc.data())
が何をしているのかを教えていただけると助かります。
該当するソースコード
公式ドキュメントを一部変更して、
import { collection, query, where, getDocs } from "firebase/firestore";
var map = new Map();
const q = query(collection(db, "cities"), where("capital", "==", true));
const querySnapshot = await getDocs(q);
querySnapshot.forEach((doc) => {
// doc.data() is never undefined for query doc snapshots
map.push(doc.id, " => ", doc.data());
});
のように、クエリの結果を順にMapに格納する際に、
map = [{
documentID1: {
//fields...
},
documentID2: {
//fields...
}
}];
のようにしたいです。
上記のコードだと、documentIDが連番になっています。
自分で試したこと
map.set(doc.id, doc.data());
分かってはいるんですが、これだとdoc.data()はundefinedになります。
アロー関数やFirebaseの公式ドキュメント等、色々しらべてみたのですが、このdoc.id, "=>", doc.data()
`が何かが分からず困っています。