FirestoreのSubCollectionの簡単な使い方(最低限メモ)
記事化するようなことでもありませんが、ま、メモということで。
SubCollectionにするか、別に分けたコレクションを作るかはいつも悩みます。
下記で試していることは3つ。
- サブコレクションの作成(コレクションとサブコレクションを新規に同時で作るような状況)
- コレクション取得時にサブコレクションがどう見えるか(見えない確認)
- GroupCollectionを利用した検索
いろいろな書き方はあるかと思うが一旦下記のようにした。
ECサイトとかで一人のユーザーが「一般ユーザー」、「ショップ運営者」、「管理者」とかの権限を持つような状況を想定(したが、あまりいいサンプルではない。別Collectionを用意したほうがいいかも)。
const admin = require('firebase-admin');
admin.initializeApp({
credential: admin.credential.cert('/path/to/key.json'),
databaseURL: 'https://xxxxxxxxxx.firebase.com',
});
const db = admin.firestore();
(async () => {
//サブコレクション作成
const docId = db.collection("users").doc().id;
await db.collection("users").doc(docId).set({ name: 'hoge' });
await db.collection("users").doc(docId).collection("shopInfo").doc(docId).set({ level: 'user', id:docId });
await db.collection("users").doc(docId).collection("adminInfo").doc(docId).set({ level: 'admin', id:docId });
//サブコレクション参照
const snapshots = await db.collection("users").doc(docId).collection("shopInfo").get();
snapshots.docs.map(doc => {
console.log(doc.data());
})
//CollectionGroup
const groupSnapshots = await db.collectionGroup("shopInfo").where('level','==','user').get();
groupSnapshots.docs.map(doc => {
console.log(doc.data());
})
})()
Author And Source
この問題について(FirestoreのSubCollectionの簡単な使い方(最低限メモ)), 我々は、より多くの情報をここで見つけました https://qiita.com/zaburo/items/669c4102b0bf96b6b8af著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .