サーチ…


ノード内のHello World Firebaseリアルタイムデータベース

システム要求:

入門

  1. まず、 Firebase Consoleに移動し、新規プロジェクトを作成します。
  2. プロジェクトを作成したら、左側のサイドバーにあるプロジェクト名のほかに、プロジェクトの設定アイコンをクリックし、権限を選択します。
  3. アクセス許可ページ左側のサイドバーの[サービスアカウント]をクリックし、[サービスアカウントの作成]をクリックします
  4. ポップアップウィンドウでサービスアカウント名を入力し、アカウントの役割を選択し、新しい秘密鍵の提供を選択してからJSONを選択し、作成(Google Appsドメイン全体の委任をオフにする)をクリックします。
  5. 作成をクリックすると、アカウント資格情報でJSONファイルがダウンロードされ、システムのAnywhereファイルが保存されます。
  6. 次のステップはFirebaseコンソールにデータベースを作成し、Firebaseコンソールに移動し、左側のバーにあるデータベースをクリックすることです。その後、ダミー値を持つ名前user_dataを持つ新しいデータベースオブジェクトを作成します。
  7. 今度はあなたの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);
});
  1. JSON CredentialsファイルのURLを変更してください(まず、Sameフォルダ内の資格情報ファイルをコピーし、index.jsファイルに資格情報ファイル名を追加するだけです)。
  2. 次のステップは、実際のFirebaseデータベースURLでindex.jsを変更することです.Firebase ConsoleのデータベースタブでこのURLを見つけることができます。URLはhttps://.firebaseio.com/のようになります
  3. 最後のステップは、
npm install firebase
  1. 上記のコマンドを実行すると、NPMはFirebaseに必要なパッケージをインストールします。最後にプロジェクトの実行とテストを実行する
node index.js

プロジェクトは実際に何をしていますか?

プロジェクトは、クラウドベースのFirebaseデータベースからデータをロードします。このプロジェクトでは、Firebaseデータオブジェクトからデータを書き込んで読み込む方法も示しています。

あなたのデータがリアルタイムで更新されるのを見るためには、 あなたのコンソールに行き、 あなたが作ったプロジェクトをクリックし、左側でDatabaseを押します。そこでは、あなたのデータがその値と共にリアルタイムで更新されるのがわかります。

Firebase-queueとワーカー

タスクまたはデータをfirebaseリアルタイムデータベースにプッシュし、firebaseキューをリッスンするワーカーを実行して、バックグラウンドプロセスを実行することができます

firebaseのセットアップ

  1. Firebaseコンソールがまだない場合は、FirebaseコンソールにFirebaseプロジェクトを作成します。既存のGoogleプロジェクトが既にアプリに関連付けられている場合は、[Googleプロジェクトのインポート]をクリックします。それ以外の場合は、[Create New Project]をクリックします。

  2. 設定アイコンをクリックし、権限を選択します。

  3. 左側のメニューから[サービスアカウント]を選択します。

  4. [サービスアカウントの作成]をクリックします。

    サービスアカウントの名前を入力します。

    必要に応じて、名前から自動的に生成されたIDからIDをカスタマイズすることができます。

    「ロール」ドロップダウンから「プロジェクト」>「エディタ」を選択します。

    新しい秘密鍵を用意し、キーの種類をJSONのままにします。

    Google Appsのドメイン全体の委任を有効にしたままにします。

    作成をクリックします

  5. サービスアカウントを作成すると、サービスアカウントの資格情報を含む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


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow