Firestore
※ データの変更後、リフレッシュのため「インデックス」タブに一旦切替えるのがオススメ
コレクションなど使いどころが参考になる
スラッシュ記法
var ref = db.collection('users').doc('syon');
var ref = db.doc('users/syon');
サブコレクション
var ref = db.collection('users').doc('syon').collection('repos').doc('chase');
var ref = db.doc('users/syon/repos/chase');
code:sample
db.doc('users/syon/repos/chase')
.set({
title: 'Chase!',
desc: 'This is Chase Repository.'
})
.catch(e => {
console.error(e)
})
ドキュメントのキーは文字列であること。数値はNG。
ドキュメントのフィールドの値は undefined にできないことになっている。
ドキュメント単体の取得
code:js
async function getDocData(path) {
return await db
.doc(path)
.get()
.then((documentSnapshot) => {
if (documentSnapshot.exists) {
return documentSnapshot.data()
}
})
}
__Mini4__
code:DB.js
import FirebaseClient from '@/models/FirebaseClient'
const db = FirebaseClient.firestore
export default class DB {
static async getDoc(path) {
const doc = await db.doc(path).get()
if (doc.exists) {
return doc.data()
}
}
}
ドキュメントの参照から子のドキュメントを得る
code:js
const ladiesQs = await firestore.collection('customers').get()
for (const ladyDoc of ladiesQs.docs) {
const lady = ladyDoc.data()
const karteQs = await ladyDoc.ref.collection('karte').get()
for (const karteDoc of karteQS.docs) {
const visit = karteDoc.data()
console.log(ladyDoc.id, lady.shimei, karteDoc.id, visit.course)
}
}