面团流
烘烤时的流动状态;
俗气的现金流双关语;
现金流网络应用程序。
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 项目(可能需要设置计费)
谷歌云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。转到 http://localhost: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 函数
待办事项