Published on

typescriptを使ってfirebase adminでrealtime databaseにデータを保存する方法

Authors
  • avatar
    Name
    ssu
    Twitter

typescriptとfirebase adminを使って、realtime databaseにデータを保存するやり方を紹介します。

まずfirebase adminとdotenvをインストールしましょう。

yarn add -D firebase-admin yarn add -D dotenv

次に、下記のようにfirebase adminをimportします。 また、adminの場合がservice accountが必要になりますが、firebaseからダウンロードしたservice accountの中身をそのままコピーして、.envのファイルに記載してしまいます。

これは、herokuやその他のPass系のサービスを使った際にenvの設定の仕方が楽になるためこうしています。

/// src/index.ts import * as admin from "firebase-admin" import { getDatabase } from 'firebase-admin/database' import * as dotenv from 'dotenv'; dotenv.config() const serviceAccount = JSON.parse(process.env.GOOGLE_APPLICATION_CREDENTIALS as string) const saveToRealtimeDatabase = async (data) => { admin.initializeApp({ credential: admin.credential.cert(serviceAccount as admin.ServiceAccount), databaseURL: "https://******.firebaseio.com" //firebaseの方で取得できます。 }); const db = getDatabase() const ref = db.ref('sample'); await ref.set(data); } export default saveToRealtimeDatabase
// .env GOOGLE_APPLICATION_CREDENTIALS=JSONのデータ

これでfirebase adminでデータをrealtime databaseに保存することができるようになります。 簡単ですね

参考: firebase-admin with typescript in firebase cloud functions

参考: Introduction to the Admin Database API

dotenv