2017-07-13 130 views
0

這個問題來自熟悉CloudKit並正在轉向Realm Mobile Platform的人的角度。Realm移動平臺:公共,私人和共享數據庫?

有了CloudKit,我們擁有私人,公共和共享數據庫的概念。私人屬於用戶,每個用戶都可以看到公共,共享數據庫就像是用戶私人數據庫的視圖,用於在有限數量的用戶(朋友)之間共享數據。

假設我想允許兩個用戶在一個項目上合作,用戶A將創建該項目並邀請用戶B進行協作,我將使用哪種機制來實現此目的,而不需要完全打開用戶A的私有領域到用戶B(只有項目用戶A特有的記錄想分享)?

回答

0

現在,領域權限是精細到數據庫(領域)級別。無法授予僅適用於給定Realm中數據子集的特定權限。

我們的路線圖上的一個高優先級項目是支持使用同步領域的部分副本的功能。與此同時,我們建議爲給定用戶創建多個專用領域來表示每個權限子集。例如,對於給定的用戶,您可能擁有一個真正的專用領域,併爲該用戶提供一個或多個代表可與其他用戶共享的數據的領域。在您的具體情況下,您可能希望爲每個項目創建一個Realm,而不是爲用戶擁有的所有項目創建一個Realm。

至於實際授予的權限,則可以創建一個RLMSyncPermissionValue對象,並將其傳遞到適當的API上RLMSyncUser(例如-[RLMSyncUser applyPermission:callback:]-[RLMSyncUser revokePermission:callback:])授予或撤銷許可。這需要知道用戶的身份,這是用戶創建時由Realm Object Server生成的。

您也可以創建RLMSyncPermissionOffer對象來表示您的用戶邀請其他用戶訪問其領域(即項目)的邀請。這樣的對象會生成一個字符串,該字符串可以通過不同的渠道(例如電子郵件)傳遞給另一個用戶,並用於創建接受該報價的對象。

最後,除了我之前提到的部分複製支持之外,我們還有一些其他項目可以使協同使用同步領域變得更容易;我們希望能儘快分享更多。

+0

很酷,我想我會爲每個項目設置不同的領域並按照您所描述的使用許可要約。謝謝 –

+0

我看到正確的,一旦授予權限,它不能被撤銷? – EpicPandaForce

+0

您應該可以隨時覆蓋或撤銷權限。 (撤銷權限實際上就是用「無權訪問」權限覆蓋/更新現有權限。) – AustinZ