全端勇士之路 Node.js 基礎學習-結合 Firebase + Express 做一個小應用(1)
前言
這章節開始將會試著結合前面所學的 Firebase 以及 Express 來嘗試做一個很微小的應用,也就是簡單的 todolis
起手式
首先這邊會直接透過 express 應用程式快速建立一個 express
1 | express --view=ejs |
連接 firebase
建立好 Express 應用程式後,就會開始準備連接 Firebase,而這邊將會使用先前使用過的範例專案
進入專案後點擊左上 Settings > 專案設定
進入專案設定後點選服務帳戶
向下看可以看到 Firebase Admin SDK 相關資訊,首先複製下內容並產生新的金鑰
安裝 ENV 及 firebase-admin
接下來這邊要來安裝兩個東西,一個是環境變數另一個則是 firebase 的套件
1 | npm install --save dotenv firebase-admin |
安裝完畢後建立一個檔案叫 .env 以及 connection 資料夾
接下來並於 connection 底下建立一個檔案 firebase-admin.js
ENV 檔案
.env 這個檔案內容主要會是剛剛下載的金鑰,但是會依照以下方式填入與呈現
1 | # Firebase Admin |
附帶一提,一般來講 .env 這個檔案並不會加入版本控制,因為這裡面有非常多的敏感資訊
firebase-admin 檔案
接下來回到 connection/firebase-admin.js,將內容改成以下,並且引入 dotenv 的環境變數
1 | var firebaseAdmin = require("firebase-admin"); |
環境變數的使用方法很簡單,只需要 process.env.XXXX(XXX 是 .env變數的名稱) 完整如下
1 | var firebaseAdmin = require("firebase-admin"); |
Route 修改
接下來挑選任一 Route 做修改,我這邊挑選 user.js,並在裡面引入 connection/firebase-admin.js
1 | var express = require('express'); |
然後在 route 中輸入 console.log(firebaseAdmin.ref())
查看是否已經連接上 firebase,如果你出現
1 | [2019-07-02T02:01:55.913Z] @firebase/database: FIREBASE WARNING: {"code":"app/invalid-credential","message":"Credential implementation provided to initializeApp() via the \"credential\" property failed to fetch a valid Google OAuth2 access token with the following error: \"Error fetching access token: Error while making request: getaddrinfo ENOTFOUND metadata.google.internal metadata.google.internal:80. Error code: ENOTFOUND\"."} |
代表你連接錯誤,這邊就代表你輸入的令牌方式有問題
如果你正確連接的話,就會看到這個畫面哩
補充
如果你是套用先前專案,記得把 firebase 規則修改回以下
1 | { |
或是
1 | { |
那這兩者差異可以看官方文件說明