不一樣的英雄榜
初衷只是為了方便查詢神器特質等級,不想再大老遠跑到難用的 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
沒有同步的時候使用。