【问题标题】:Can CloudKit create shared private containers?CloudKit 可以创建共享私有容器吗?
【发布时间】:2016-06-21 09:53:19
【问题描述】:

我正在构建一个需要在家庭成员之间同步数据的应用程序(例如共享购物清单),我正在考虑使用 CloudKit。我的理解是,我既可以拥有对所有人公开的表格,也可以拥有仅对一个个人/iCloud 帐户公开的表格。我需要的是两者的混合体。所以两个问题:

1) 有没有办法在妈妈和爸爸之间私下共享数据,并且只有他们(实际上是共享的私有容器)?

2) 如果我在公共容器中创建所有数据并简单地过滤掉谁可以看到应用程序上的内容,那么任何人都可以查看/破解该公共容器数据吗? (我问这个是因为可能涉及稍微敏感的数据)。有人可以做相当于“全选”的操作并查看所有内容吗?

非常感谢,

乔什

【问题讨论】:

    标签: ios icloud cloudkit


    【解决方案1】:

    有几种方法可以实现这样的目标。在所有情况下,它归结为:

    添加一个 CKReference 字段,该字段将填充您要与之共享的用户的 ID。 确保您的谓词将过滤 ID 属于您的 CKReference 字段(与您共享) 您存储 CKReference 的位置和方式取决于您想要共享的方式。

    如果您只想与一个人共享,那么只需将该 CKReference 字段包含到您的主记录类型中。不要像您在问题中所说的那样将其添加到消息中。添加一个额外的字段。 如果您想分享给有限数量的人,那么您可以在您的 recordType 中添加一个字段,该字段是 CKReference 的列表。 如果您想与一大群人共享,那么您可以添加一个组记录类型,该记录类型将具有一个 groupID 和一个 groupMembers 记录类型,您将在其中存储作为该组成员的所有用户 CKReference id。 在所有情况下,解决方案都是安全的。这一切都取决于您在应用程序中定义的谓词。如果您的谓词过滤器之一不正确,则可能有人看到了不适合他的东西。

    EVCloudKitDao的demo app中是一个基于CloudKit的聊天应用。它使用便利库 EVCloudKitDao,但共享内容的结构类似。

    【讨论】:

    • 谢谢。我一直在研究几种不同的技术,这对我很有帮助。
    【解决方案2】:

    回答您的问题 #1:CloudKit 共享是在 WWDC 2016 上推出的。这允许在一组已知用户之间共享私有数据库记录,这听起来像是您正在寻找的。​​p>

    “CloudKit 中的新功能”会议中有一个很好的概述:https://developer.apple.com/videos/play/wwdc2016/226/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-13
      • 2017-05-24
      • 2017-03-23
      • 2011-08-21
      • 2011-01-09
      • 2015-08-24
      • 2022-01-20
      相关资源
      最近更新 更多