我無法理解一些CloudKit共享概念,而WWDC 2016「CloudKit中的新增功能」視頻並未解釋允許用戶共享和訪問共享記錄所需的所有內容。CloudKit共享
我已成功創建了一個應用程序,允許用戶在他們的私人數據庫中創建和編輯記錄。 我也可以使用提供的共享UIController創建共享記錄並共享此記錄。這可以被參與者用戶成功接收和接受,但我無法弄清楚如何查詢和顯示這個共享記錄。
該應用程序在用戶私人數據庫中創建一個「MainZone」,然後在此「MainZone」中創建一個CKRecord。然後我創建並保存CKShare記錄並使用它顯示UICloudSharingController。
如何查詢sharedDatabase以訪問此記錄?我已經使用了相同的查詢試圖作爲privateDatabase使用,但得到以下錯誤:
"ShareDB can't be used to access local zone"
編輯
我發現了問題 - 我需要處理在AppDelegate中接受的記錄。現在它們出現在CloudKit儀表板中,但我仍然無法查詢它們。看來我可能需要獲取sharedDatabase「MainZone」才能查詢它們。
我不會推薦這種方法,如果有數百萬用戶分享內容會發生什麼?將有數百萬個記錄區域,因此這個查詢可能非常大。我認爲正確的做法似乎是將本地引用存儲到與用戶共享的內容中,並使用它們來查詢更改。我認爲這個想法也是儘量減少查詢,然後註冊更改,然後處理更改 - 但是我擔心在某些情況下可能會導致推送流量太大。 –
嗯 - 實際上你可能是對的,因爲用戶只能看到與他們共享的記錄中的區域! –