CloudKit Console 页面中查询数据出现 Field ‘recordName‘ is not marked queryable 错误的解决
Posted 大熊猫侯佩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CloudKit Console 页面中查询数据出现 Field ‘recordName‘ is not marked queryable 错误的解决相关的知识,希望对你有一定的参考价值。
概览
在 CoreData 将数据模型通过 CloudKit 自动同步到 iCloud 之后,在 CloudKit Console 对应容器的查询页面中,查询已经同步到 iCloud 的数据时,有可能会提示 Field ‘recordName’ is not marked queryable 错误:
这是什么原因,又该如何解决呢?
其实非常简单!
废话少叙,Let‘s go!
解决办法
简单来说,这是因为对应数据类型中 recordName 属性未做索引的原因。
拿上面的栗子来说,CloudKit 数据表 CD_KnowledgeBall 之所以不能查询到数据,是因为它的 recordName 属性没有加上 QUERYABLE 索引。
在 CloudKit Console 对应容器的页面左侧点击 Schema 中的 Indexes 菜单项,然后点击右侧窗口中对应的数据类型,这里是 CD_KnowledgeBall:
滚动到列表底部,点击 Add Basic Index 按钮,这会在列表底部新添加一条项目:
展开新项目的 Select an option… 菜单,选择 recordName 属性:
接着,设置 recordName 属性的索引类型为 Queryable:
最后,点击右侧窗口右上角的 Save Changes 按钮,保存修改。
再次尝试查找 CD_KnowledgeBall 表中的数据,这回你会发现如愿以偿了:
注意,我们必须根据数据在iCloud中实际的位置,选择正确的Database(公有或私有)、正确的 Zone 以及正确的 RECORD TYPE 名称,才能确保可以最终取得所保存的数据。
总结
在本篇博文中,我们详细介绍了CloudKit Console 页面中查询数据出现 Field ‘recordName‘ is not marked queryable 错误的解决步骤,你值得拥有!
感谢观赏,再会。😎
以上是关于CloudKit Console 页面中查询数据出现 Field ‘recordName‘ is not marked queryable 错误的解决的主要内容,如果未能解决你的问题,请参考以下文章
在 Google Apps 脚本中使用 CloudKit Web 服务 API 查询 CloudKit 公共数据库时的 AUTHENTICATION_FAILED