Posted at

Node.jsでCloud FirestoreとRealtime Databaseの使い始めメモ

Firebaseをデータベースとして扱おうとした時に、Functionsなどのホスティング環境があってなかなかググラビリティが悪いのでちょっとまとめてみたメモです。機能がどうだってのは触れません。


Firebaseのデータベースは現状2種類

Realtime DatabaseCloud Firestoreがあります。

管理画面の項目をまとめるとイメージはたぶんこんな感じ。


接続の仕方がそれぞれ違う

Node.jsの場合、firebase-adminを使ってアクセスします。


Realtime Database

admin.database()でインスタンス作成。


app.js

const admin = require("firebase-admin");

const serviceAccount = require("path/to/serviceAccountKey.json");

admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://<プロジェクト名>.firebaseio.com"
});

//↑ここまでは共通 ↓ここから記述が分かれる

const db = admin.database();
const ref = db.ref("mytopic");

ref.on("value", function(snapshot) {
console.log(snapshot.val());
},
function(errorObject) {
console.log("The read failed: " + errorObject.code);
} );



Cloud Firestore

admin.firestore()でインスタンス作成。


app.js

const admin = require("firebase-admin");

const serviceAccount = require("path/to/serviceAccountKey.json");

admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://<プロジェクト名>.firebaseio.com"
});

//↑ここまでは共通 ↓ここから記述が分かれる

const db = admin.firestore();
db.collection('mytopic').get()
.then((snapshot) => {
snapshot.forEach((doc) => {
console.log(doc.id, '=>', doc.data());
});
})
.catch((err) => {
console.log('Error getting documents', err);
});