ご想像の通り、firebase cloud functionsでhttpのエンドポイントを作り、そのエンドポイントでfirestoreに格納する形になります
index.ts
1import * as functions from 'firebase-functions';
2import * as admin from 'firebase-admin';
3
4admin.initializeApp(functions.config().firebase);
5const db = admin.firestore();
6
7export const endpoint = functions.https.onRequest(async (req, res) => {
8 try {
9 if(req.method !== 'POST') throw new Error('POST method is only acceptable');
10
11 await db.collection('collectionName').doc('documentId').set(req.body);
12 } catch (error){
13 // エラー処理
14 }
15});
16
細かい処理は書いていませんが、こんな感じになるかと思います。
非同期処理が絡んでくるのでasync / await
を使えるTypeScriptの方がスッキリかけると思います。(javascriptでも使える場合はありますが実行環境に依存するのでオススメはしないでおきます。)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/19 14:21