2016-07-08 74 views
3

我讀過關於這個話題,都散落在一個類似的問題約10相關計算器問題...我想簡化圍繞一個虛構的「待辦事項」我的問題應用。我正在學習編寫代碼(javascript),並且遇到了障礙。我的「激情」項目讓我學習非常複雜,解決了個人旅行問題。有一天,我希望我可以放棄!如何構建一個多用戶pouchdb/coucdb應用和驗證

這裏是虛構的應用程序:

這個程序將使用離子2.離線第一個應用程序將允許用戶登錄並創建自己的列表中內置「到DOS。」這些應該可以通過他們的手機和桌面進行訪問和同步。用戶還應該能夠與可能能夠複製其他人的「待辦事項」列表的社區分享他們的待辦事項列表。應用程序還應該能夠查詢用戶最喜歡做什麼,比如「刷我的牙齒」或「查看我的蝙蝠俠集合」。用戶還應該能夠使用任何社交網絡登錄(Facebook,Twitter,谷歌等)。

1)你如何構建pouchdb/couchdb數據庫?打開couchbase/cloudant。

它是每個用戶的數據庫嗎?它是每個角色的數據庫嗎?它是一個每個人的數據庫(我知道這有安全問題)?

2)它是正確的假設,你需要在每個客戶端pouchdb數據庫合併到一個大的數據庫查詢?

3)您是否必須使用NodeJS後端或服務器?

4)您可以使用Auth0或Stormpath進行身份驗證嗎?

我一直在研究大約5天,我無法弄清楚這一點。我非常感謝所有的幫助。

編輯:我覺得這說明了什麼,我需要很好除了驗證我的猜測可能與Bluemix工作?

https://cloudant.com/blog/replication-with-cloudant-pt-3/#.V38hxpMrJE6

的思考?

回答

1

你可以用「pouchdb認證」管理用戶身份驗證:(https://github.com/nolanlawson/pouchdb-authentication

您可以創建在CouchDB的「_user」數據庫身份驗證和用戶的元數據「用戶」文件,然後爲每個用戶創建一個數據庫。

你可以爲每個用戶創建數據庫用戶和角色與「設計文件」,規範哪些用戶和與它們相關的角色獲得與文檔做的(用戶的「待辦事項」列表)。

PouchDB「搜索插件」是一種很好的開始使用這些(https://github.com/nolanlawson/pouchdb-quick-search)的方法,它提供了一種很好的方式來輕鬆查找內容。

我只是爲我正在構建的應用程序使用PouchDB/CouchDB。我在服務器端需要做的事情是使用Perl。 PHP可能是一個更好的支持選項,但我喜歡Perl,並且有幾個perl模塊可以與CouchDb接口,但是我已經完成了我在perl中使用Curl所需的大部分功能。

「是正確的假設,你需要在每個客戶端pouchdb數據庫合併到一個大的數據庫查詢?」

我不知道那件事。我最初的預感是否定的,除非你想把所有的ToDo列表放在一個數據庫中,這樣他們就可以很容易地被所有人共享。如果您將用戶數據庫中的用戶待辦事項保存起來,我認爲用戶可以更輕鬆地管理更細粒度的共享。

+1

我沒有簽出「pouchdb-authentication」。我最終使用「superlogin」(https://github.com/colinskow/superlogin)創建了一個類似的_user數據庫併爲您創建了一個用戶數據庫。它也有很多選擇。我會嘗試PouchDB搜索插件,看起來有一個CouchDB版本。我只是在想,我不知道如何在閱讀該插件後脫機處理共享部分。這可能需要提醒用戶連接到搜索。 – dhndeveloper

+0

Cloudant正在研究一些他們稱之爲Envoy的東西,這個東西解決了我關於整體結構但是早期測試版的問題(https://medium.com/offline-camp/scaling-offline-first-with-envoy-ada42d130cfc#.q7t4wbcmt)。我可能會在未來嘗試。 couchdb貢獻者建議我創建1-db-per-user,然後執行過濾複製來創建共享數據庫。 – dhndeveloper

+0

我不熟悉「過濾的複製」,所以我不得不考慮一下。您也可以在數據庫的「安全」中爲數據庫設置用戶權限。這很容易,我最終做的是爲管理任務提供訪問權限。 –