麵團流
烘烤時的流動狀態;
俗氣的現金流雙關語;
現金流網路應用程式。
DoughFlow 是一個客戶端/伺服器 Web 應用程序,分別基於 EmberJS/Google Cloud Firebase 建置。
後端邏輯透過 Firebase Cloud Functions 實現,使用 Firebase 本身作為使用者資料的後備儲存。這將業務邏輯封裝在輕量級、無伺服器部署中,遠離客戶端。
前端作為 App Engine 的靜態頁面提供服務( TODO 不要這樣做......從 GCS 或其他東西提供服務)。
託管在 Google App Engine 上,使用其微服務框架:
前端作為服務實作: default
EmberJS 檔案以靜態檔案(html 和資產)提供。
後端功能作為雲端功能實現(注意:Firebase 風格,而不是「純」雲端;整合似乎太 alpha)
後端儲存是直接的 Firebase
為了方便起見,讓DOUGH_FLOW=/home/me/my_dough_flow_checkout
(例如,加入 shell rc,需要在 zsh 中export
)
帶有 GAE 應用程式的 GAE 項目(可能需要設定計費)
Google雲端SDK
https://cloud.google.com/sdk/downloads
NodeJS(我使用 7.10 和 nvm)
brew install nvm; nvm install v7.10
EmberJS(我最近使用的截至2017-05-26)
npm install -g [email protected]
火力基地
npm install -g firebase-tools; npm install -g firebase-server
與您的 Google Cloud 專案相關的 Firebase 項目
Firebase 伺服器和 SDK
轉到src/frontend
。
ember build
(注意:是這樣嗎?會自動安裝 npm 的東西嗎?)
轉到gae/
。複製建置工件以進行 GAE 部署。
ln -s ../src/frontend/dist
有關更多信息,請參閱前端自述文件。
建置/部署到實際的 AppEngine 時:
ember build --environment=production
待辦事項
編輯/etc/hosts
(或類似的)以映射:
127.0.0.1 localhost.firebaseio.test
Firebase 喜歡特定格式的資料庫 URL,因此您不能只使用本機 ip 或本機作為databaseURL
。
從專案根開始,
bin/start-doughflow-firebase# 或用於詳細調試:DEBUG=* bin/start-doughflow-firebase
(請注意,您的環境中需要有DOUGH_FLOW
才能使該腳本正常運作。)
(注意:為了方便起見,您可以將
$DOUGH_FLOW/bin
加入到 shell 的路徑中)
這將啟動一個類似 Firebase 的本機伺服器,載入來自test/firebase.json
的數據,可在localhost.firebaseio.test
連接埠5555
上使用。當environment=development
時,Ember應用程式設定為使用此主機名稱。
啟動本機 Firebase 伺服器(請參閱上文)。然後,從src/frontend
,
餘燼伺服器
這將啟動一個即時重新載入的 Web 伺服器,偵聽連接埠 4200。
不確定我們是否真的需要這個。我們需要雲端功能來實現客戶端不應控制的精細/敏感伺服器邏輯。目前我們還沒有這樣的東西。但弄清楚這一點很痛苦。因此,這裡有一些供後代注意的事項。
在src/firebase/functions
中設定一些函數,使用範例,如 helloWorld,應該是src/firebase/functions/index.js
。
在src/firebase/functions/config.json
檔案中設定身份驗證,對於本機,您可能不需要實際的憑證。
運行本地函數模擬器:
從src/firebase/functions
目錄:
匯出 CLOUD_RUNTIME_CONFIG=`pwd`/config.json && firebaseserve --only 函數
待辦事項