不一樣的英雄榜
初衷只是為了方便查詢神器特質等級,不想再大老遠跑到難用的 WoWProgress 去查。
首先必須把 firebase-tools 裝好。
npm install -g firebase-tools以及 Google Cloud SDK。
初次使用可能會提示你下一些登入用的指令,照做就好囉!
修改 app/config.js 的內容,換成你的設定。
apiKey 可以在 專案 console -> [設定] -> [一般] 裡面找到。
export const firebase = {
apiKey: '{你的 API key}',
authDomain: '{你的專案名稱}.firebaseapp.com',
databaseURL: 'https://{你的專案名稱}.firebaseio.com'
};為了在 server 或是 本地 使用某些 admin 權限的操作,需要透過這個 SDK JSON 認證為服務帳戶。
產生方法是到 專案 console -> [設定] -> 服務帳戶,透過 產生新的私密金鑰 取得 JSON 檔案。
- 目前 Cloud Functions 上操作 Firebase Storage 的部分需要透過此 SDK 認證才能操作,因此需要擺一個在
./functions/firebase-adminsdk.json - 再來如果你有需要使用到
utils/createIndex.js,需要擺一個在專案目錄底下./firebase-adminsdk.json
以下的 cloud functions 的環境設定必須完成才能運作
暫時保持使用一組 API
{
"project": {
"id": "{project id}",
"bucket": "{bucket name}"
},
"resource": {
"total": "10"
},
"blizzapi": {
"id1": "{client id 1}",
"secret1": "{client secret 1}"
},
"wclapi": {
"key": "{key}"
}
}| 設定名稱 | 敘述 |
|---|---|
| project.id | firebase project id |
| project.bucket | firebase storage bucket name |
| resource.total | 同時可以運行的 bnet api request 數量 |
| blizzapi.id1 | 新版 develop.battle.net API client id |
| blizzapi.secret1 | 新版 develop.battle.net API client secret |
| wclapi.key | Warcraft Logs API key |
| legionassult.base | 軍團入侵時間的基底(此前某次的開始時間) |
| bfaassult.base | 衝突戰時間的基底(此前某次的開始時間) |
設定方法
firebase functions:config:set project.id="your project id"battle.net API 申請請前往 https://dev.battle.net/。
WCL API 申請請前往 https://www.warcraftlogs.com/accounts/changeuser (需登入)。
設定相關文件可以看 Cloud Functions: Environment Configuration。
因為 Firebase Storage 其實就是 Google Cloud Storage,所有一些 Firebase console 下沒有提供的操作,我們需要透過 gsutil 來進行。
# 在專案根目錄下
gsutil cors set cors-json-file.json gs://hi-armory-tw在主目錄 跟 functions/ 目錄都需要做一次。
npm install
# 或
yarn install# dev server
npm start
# 接著瀏覽 http://localhost:4444# build
npm run dist
# deploy everything
firebase deploy
# deploy just functions
firebase deploy --only functions
# deploy just hosting
firebase deploy --only hosting用目前現有 results 內的資料,重新建立一次 index。
一般來說是在 results 跟 index 沒有同步的時候使用。