TypeScriptでfirebase-admin sdkを使う
Node.jsだと公式ドキュメントの通り
const admin = require('firebase-admin'); var serviceAccount = require('path/to/serviceAccountKey.json'); admin.initializeApp({ credential: admin.credential.cert(serviceAccount) }); var db = admin.firestore()
で使えるのですが、TypeScriptだとちょっとやり方を変えないといけません。
事前にJSONファイルを読み込むのにtsconfig.ts
のcompilerOptions.resolveJsonModule
をtrue
にしておいて、
import * as firebase from 'firebase-admin' import * as serviceAccount from '/path/to/firestore-service-account.json' const params = { type: serviceAccount.type, projectId: serviceAccount.project_id, privateKeyId: serviceAccount.private_key_id, privateKey: serviceAccount.private_key, clientEmail: serviceAccount.client_email, clientId: serviceAccount.client_id, authUri: serviceAccount.auth_uri, tokenUri: serviceAccount.token_uri, authProviderX509CertUrl: serviceAccount.auth_provider_x509_cert_url, clientC509CertUrl: serviceAccount.client_x509_cert_url } firebase.initializeApp({ credential: firebase.credential.cert(params), })
でいけます。