【Firebase Functions】Databaseの固有IDを取得したい
以下の枠に囲われた固有IDを取得したい場合があります。
例えば、指定したIDのドキュメント直下に、さらにコレクションやドキュメントを作成する場合です。
その場合、以下のような書き方で固有IDを取得できます。
exports.addFanpageMember = functions.firestore .document("fanPages/{fanpageId}") // このように書く .onCreate(async (snap, context) => { const val = snap.data(); console.log(val); try { await admin .firestore() .collection("fanPages") .doc(context.params.fanpageId) // このように書く .collection("members") .doc(val.userId) .set({ permission: "pageOwner" }); return; } catch (error) { console.log(error); await snap.ref.set({ error: userFacingMessage(error) }, { merge: true }); console.error(error); console.log(`user: ${context.params.userId}`); } });
重要なのは、以下2点です。
.document("fanPages/{fanpageId}") // このように書く .onCreate(async (snap, context) => {
.doc(context.params.fanpageId) // このように書く
ドキュメントを指定する際に「{fanpageId}」といった書き方をすることで、「context.params.fanpageId」と書いてアクセスが可能となります。