firebase
ノードでのFirebaseの使用
サーチ…
ノード内のHello World Firebaseリアルタイムデータベース
システム要求:
入門
- まず、 Firebase Consoleに移動し、新規プロジェクトを作成します。
- プロジェクトを作成したら、左側のサイドバーにあるプロジェクト名のほかに、プロジェクトの設定アイコンをクリックし、権限を選択します。
- アクセス許可ページ左側のサイドバーの[サービスアカウント]をクリックし、[サービスアカウントの作成]をクリックします
- ポップアップウィンドウでサービスアカウント名を入力し、アカウントの役割を選択し、新しい秘密鍵の提供を選択してからJSONを選択し、作成(Google Appsドメイン全体の委任をオフにする)をクリックします。
- 作成をクリックすると、アカウント資格情報でJSONファイルがダウンロードされ、システムのAnywhereファイルが保存されます。
- 次のステップはFirebaseコンソールにデータベースを作成し、Firebaseコンソールに移動し、左側のバーにあるデータベースをクリックすることです。その後、ダミー値を持つ名前user_dataを持つ新しいデータベースオブジェクトを作成します。
- 今度はあなたのFirebase Databaseプロジェクトがセットアップされ、プロジェクトディレクトリに次のコードをコピーするだけです。
//Loading Firebase Package
var firebase = require("firebase");
/**
* Update your Firebase Project
* Credentials and Firebase Database
* URL
*/
firebase.initializeApp({
serviceAccount: "<path to Firebase Credentials Json File>",
databaseURL: "<Firebase Database URL>"
}); //by adding your credentials, you get authorized to read and write from the database
/**
* Loading Firebase Database and refering
* to user_data Object from the Database
*/
var db = firebase.database();
var ref = db.ref("/user_data"); //Set the current directory you are working in
/**
* Setting Data Object Value
*/
ref.set([
{
id:20,
name:"Jane Doe",
email:"[email protected]",
website:"https://jane.foo.bar"
},
{
id:21,
name:"John doe",
email:"[email protected]",
website:"https://foo.bar"
}
]);
/**
* Pushing New Value
* in the Database Object
*/
ref.push({
id:22,
name:"Jane Doe",
email:"[email protected]",
website:"https://jane.foo.bar"
});
/**
* Reading Value from
* Firebase Data Object
*/
ref.once("value", function(snapshot) {
var data = snapshot.val(); //Data is in JSON format.
console.log(data);
});
- JSON CredentialsファイルのURLを変更してください(まず、Sameフォルダ内の資格情報ファイルをコピーし、index.jsファイルに資格情報ファイル名を追加するだけです)。
- 次のステップは、実際のFirebaseデータベースURLでindex.jsを変更することです.Firebase ConsoleのデータベースタブでこのURLを見つけることができます。URLはhttps://.firebaseio.com/のようになります 。
- 最後のステップは、
npm install firebase
- 上記のコマンドを実行すると、NPMはFirebaseに必要なパッケージをインストールします。最後にプロジェクトの実行とテストを実行する
node index.js
プロジェクトは実際に何をしていますか?
プロジェクトは、クラウドベースのFirebaseデータベースからデータをロードします。このプロジェクトでは、Firebaseデータオブジェクトからデータを書き込んで読み込む方法も示しています。
あなたのデータがリアルタイムで更新されるのを見るためには、 あなたのコンソールに行き、 あなたが作ったプロジェクトをクリックし、左側でDatabaseを押します。そこでは、あなたのデータがその値と共にリアルタイムで更新されるのがわかります。
Firebase-queueとワーカー
タスクまたはデータをfirebaseリアルタイムデータベースにプッシュし、firebaseキューをリッスンするワーカーを実行して、バックグラウンドプロセスを実行することができます
firebaseのセットアップ
Firebaseコンソールがまだない場合は、FirebaseコンソールにFirebaseプロジェクトを作成します。既存のGoogleプロジェクトが既にアプリに関連付けられている場合は、[Googleプロジェクトのインポート]をクリックします。それ以外の場合は、[Create New Project]をクリックします。
設定アイコンをクリックし、権限を選択します。
左側のメニューから[サービスアカウント]を選択します。
[サービスアカウントの作成]をクリックします。
サービスアカウントの名前を入力します。
必要に応じて、名前から自動的に生成されたIDからIDをカスタマイズすることができます。
「ロール」ドロップダウンから「プロジェクト」>「エディタ」を選択します。
新しい秘密鍵を用意し、キーの種類をJSONのままにします。
Google Appsのドメイン全体の委任を有効にしたままにします。
作成をクリックします
サービスアカウントを作成すると、サービスアカウントの資格情報を含むJSONファイルがダウンロードされます。これは、サーバーでSDKを初期化するために必要になります。
セットアップサーバー
あなたのnodejsアプリにnpmを使ってfirebase-queueをインストールする
npm install firebase firebase-queue --save
firebaseとfirebase-queueをインストールしたら、新しいQueueを作成し、Firebaseリファレンスと処理関数を渡すことで開始できます。
今度は、新しいユーザが作成されたときに、アプリケーションからfirebaseキュータスクを作成し、firebase-queueタスクをリッスンするようにworkerを設定し、作成されたユーザメールに電子メールを送信します。
* server.js
var app=express();
var Queue = require('firebase-queue'),
Firebase = require('firebase');
Firebaseプロジェクトの資格情報とFirebaseデータベースのURLを更新する
var firebase = Firebase.initializeApp({
serviceAccount: "path/to/serviceAccountCredentials.json",
databaseURL: "https://databaseName.firebaseio.com"
});
以下のように直接firebase認証情報を入力することもできます
var firebase = Firebase.initializeApp({
serviceAccount: {
projectId: "projectId",
clientEmail: "[email protected]",
privateKey: "-----BEGIN PRIVATE KEY-----\nkey\n-----END PRIVATE KEY-----\n"
},
databaseURL: "https://databaseName.firebaseio.com"
});
var refQueue = firebase.database().ref("queue/tasks");
createUser = funtion(email, password){
var user = {
username: email,
password: password
};
user = new db.users(user);
user.save(function(err, user){
if(!err){
refQueue.push({case: "NEW_USER", data: user});
}
})
}
createUser("[email protected]", "password");
* worker.js
var Queue = require('firebase-queue'),
Firebase = require('firebase');
//Update your Firebase Project Credentials and Firebase Database URL by one of the way specified in server.js
var firebase = Firebase.initializeApp({
serviceAccount: "path/to/serviceAccountCredentials.json",
databaseURL: "https://databaseName.firebaseio.com"
});
var refQueue = firebase.database().ref("queue");
var queue = new Queue(refQueue, function(data, progress, resolve, reject) {
switch(data.case){
case "NEW_USER":
sendMail(data.data.email);
console.log("user created");
//sendMail function is not an inbuilt function and will not work unless you define and implement the function
break;
// Finish the task asynchronously
setTimeout(function() {
resolve();
}, 1000);
});
サーバとワーカーを別々に実行し、ファイアベースキューでテストしてください
node server.js
node worker.js