수색…


노드의 Hello World Firebase 실시간 데이터베이스

시스템 요구 사항:

시작하기

  1. 먼저 Firebase Console 과 새 프로젝트 만들기로갑니다.
  2. 프로젝트 생성 후 왼쪽 사이드 바에있는 프로젝트 이름 외에 설정 아이콘을 클릭하고 권한을 선택하십시오.
  3. 권한 페이지에서 왼쪽 사이드 바에서 서비스 계정을 클릭 한 다음 서비스 계정 만들기를 클릭하십시오.
  4. 팝업 창에서 서비스 계정 이름을 입력하고 계정 역할을 선택하고 새 비공개 키 준비를 선택한 다음 JSON을 선택하고 만들기 (Google Apps 도메인 전체 위임을 선택 취소 한 상태로 유지)를 클릭합니다.
  5. 만들기를 클릭하면 계정 자격 증명을 사용하여 JSON 파일을 다운로드하고 시스템의 아무 데나 파일을 저장하면됩니다.
  6. 다음 단계는 Firebase 콘솔로 이동하여 왼쪽 사이드 바에있는 데이터베이스를 클릭하여 Firebase 콘솔에 데이터베이스를 생성하는 것입니다. 그런 다음 더미 값을 사용하여 이름이 user_data 인 새 데이터베이스 객체를 만듭니다.
  7. 이제 Firebase 데이터베이스 프로젝트가 설정되었으므로 프로젝트 디렉토리에 다음 코드를 복사하십시오.
//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 자격 증명 파일 URL로 변경하십시오 (처음에는 동일한 폴더에서 자격 증명 파일을 복사하고 index.js 파일에서는 자격 증명 파일 이름을 추가하기 만하면됩니다).
  2. 다음 단계는 index.js 파일을 실제 Firebase 데이터베이스 URL로 변경하는 것입니다. Firebase 콘솔의 데이터베이스 탭에서이 URL을 찾을 수 있습니다. URL은 https : //.firebaseio.com/같습니다 .
  3. 마지막 단계는
npm install firebase
  1. 위 명령을 실행 한 후 NPM은 Firebase에 필요한 필수 패키지를 설치합니다. 마지막으로 프로젝트 실행 및 테스트 실행
node index.js

프로젝트는 실제로 무엇을합니까?

프로젝트는 클라우드 기반 Firebase 데이터베이스에서 데이터를로드합니다. 이 프로젝트는 또한 Firebase 데이터 객체에서 데이터를 쓰고 읽는 방법을 보여줍니다.

데이터를 실시간으로 업데이트하려면 콘솔 로 이동하여 프로젝트를 클릭하고 왼쪽에서 Database를 누릅니다. 데이터가 실시간으로 업데이트되고 값과 함께 업데이트되는 것을 볼 수 있습니다.

Firebase 대기열 및 작업자

작업 또는 데이터를 firebase 실시간 데이터베이스에 전송하고 firebase 대기열을 수신하여 작업자 프로세스를 실행하는 작업자를 실행할 수 있습니다

firebase 설치

  1. 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 대기열 작업을 생성하고 worker가 firebase-queue 작업을 청취하고 생성 된 사용자 메일로 전자 메일을 보내도록 설정할 수 있습니다.

* 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);
});

서버와 작업자를 별도로 실행하고 firebase 대기열로 테스트

node server.js

node worker.js


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow