Firebase functions内でFirestoreを操作する方法のメモです。
やはりFirebaseのエコシステム内なのでとても簡単に出来ました。
firebase adminの追加
functionsディレクトリ内で以下コマンドを実行して、firebase adminを追加します。
これはnode.js等、サーバーサイドでfirebaseを使うためのSDKです。
詳しくは以下を参照
https://firebase.google.com/docs/admin/setup
# もしpermission deniedで落ちる場合は、sudo yarn add firebase-adminで実行してください
$ yarn add firebase-admin
functionsでの読み込み、firestoreの操作
あとは、functionsのindex.js内で読み込み使用するだけです。
initのための環境情報はfunctionsがすでに持っているのでそちらから取得可能です。
@uu4kさんにコメント戴きました。v1.0.0以降初期化時の引数は不要です。
以下Firestoreになにかデータを保存する場合の例。
index.js
const functions = require('firebase-functions')
const admin = require('firebase-admin')
admin.initializeApp()
exports.saveData = functions.https.onCall((data, context) => {
admin.firestore().collection('コレクション名').add(data).then(() => {
// 保存に成功した際の処理
}
).catch((err) => {
// 保存に失敗した際の処理
})
}