我正在使用Firebase后端在Swift中构建iOS应用。我的应用需要高级搜索选项。我被告知我应该通过这个github链接使用Flashlight / ElasticSearch https://github.com/firebase/flashlight
假设我的应用名称是SneakerSearch和我的
Firebase Project_ID is- sneakersearch-az12
Firebase Web_API_Key is- abc123XYZ000...
Firebase App_Url is- gs://sneakersearch-az12.appspot.com
我需要一些建议来解决这个问题,因为我是Heroku和Node.js的新手。我之前从未学过,但我已经安装了Heroku工具腰带和' sudo gem heroku install'完了。
我列出了github方向/步骤以及我为每个方向采取的步骤。我需要方向帮助:1,4,5,6,9,10,12和15。
1.Install and run ElasticSearch or add Bonsai service via Heroku
1。我在Heroku开了账户。
1.-问题:我是否需要创建应用程序的名称并在设置我的Heroku帐户后进行部署,还是应该等到第9步?
2.git clone https://github.com/firebase/flashlight
2.我将上述内容克隆到我的iOS应用程序的项目文件夹
3.npm install
3.在提示我第一次运行" npm init"然后我跑了#34; npm install"
4. edit config.js (see comments at the top, you must set FB_URL and FB_SERVICEACCOUNT at a minimum)
4A.-问题:什么是" FB_SERVICEACCOUNT"?我使用的是Firebase 3,但在我的控制台中,我无法在服务帐户上找到任何内容。除了我已经制作的Firebase swift项目之外,我还需要使用node.js为我的项目设置另一个Firebase帐户吗?
4B.-问题:我在哪里"编辑config.js"并将我的FB_URL和FB_SERVICEACCOUNT设置为?这应该在我的package.json文件中吗?
5.node app.js (run the app)
5.-问题:在终端我跑了节点app.js"并且得到了错误; ^"。为什么我会收到此错误?
6.curl -X POST http://localhost:9200/firebase
6.-问题:这是为了什么?
7.cd flashlight
7.switched to flashlight dir
8.heroku login
8.已登入Heroku
9.heroku create (add heroku to project)
9A-QUESTION:当我第一次在Heroku创建帐户时,我是否应该使用我的应用程序名称创建一个新应用程序并使用它列出的git说明进行部署?如果我不应该首先这样做将运行" heroku create"为我管理这个过程?
9B-问题:我是否只是运行" heroku create"或者我运行" heroku create -app&name的名字 - 这里"?
10.heroku addons:add bonsai (install bonsai)
10.问题:我是否需要在Bonasi.io开立账户并在此步骤之前安装或者为我设置一个盆景账户?我之前从未使用过盆景。
11.heroku config (check bonsai instance info and copy your new BONSAI_URL - you will need it later)
11.我想这个问题将取决于第10步。
12.heroku config:set FB_NAME=<instance> FB_TOKEN="<token>" (declare environment variables)
12.-问题:什么是Firebase TOKEN?这是我的Web_API_Key,App_URL还是Project_ID?我找不到任何特定于&#34;令牌&#34;在我的firebase控制台内。我使用的是Firebase 3。
13.git add config.js (update)
git commit -m "configure bonsai"
13。提交消息
14.git push heroku master (deploy to heroku)
14。推进掌握
15.heroku ps:scale worker=1 (start dyno worker)
15.-问题:这是为了什么?
答案 0 :(得分:2)
以上答案很棒。但是,有太多的评论让我的更新在那里有用,所以我把它放在这里。
如果您按照上述步骤操作,则会在步骤中遇到错误:
较新版本的elasticSearch不再允许您使用POST创建新索引,但您可以使用PUT。所以你想要运行
curl -X PUT https://abc123a01:01abc12de45xyz34@xyz-012345.us-east-1.bonsaisearch.net/firebase
,响应应为:{"acknowledged":true,"shards_acknowledged":true}
有关详细信息,请参阅this question。
<强>更新强>
我还转到了Algolia,因为文档更加清晰。但是,我会说弹性搜索文档非常需要更新。我建议那些对弹性搜索感兴趣的人尝试使用Firebase云功能而不是Heroku来部署他们的代码。我无法找到相关指南,但node.js代码应该类似,除非它将部署到Firebase云而不是Heroku。这应该使这个过程变得更加简单。您可以查看Firebase云功能here