Firebaseをデータベースとして扱おうとした時に、Functionsなどのホスティング環境があってなかなかググラビリティが悪いのでちょっとまとめてみたメモです。機能がどうだってのは触れません。
Firebaseのデータベースは現状2種類
Realtime Databaseと Cloud 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);
});