CloudKit 获取所有用户记录
Posted
技术标签:
【中文标题】CloudKit 获取所有用户记录【英文标题】:CloudKit Fetch all User records 【发布时间】:2015-11-12 19:38:43 【问题描述】:我想为我的应用获取在同一个公共默认容器中工作的所有用户。 是否可以获取所有用户 ID?
当我尝试这样做时:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"TRUEPREDICATE"]; // to search for all the records
CKQuery *query = [[CKQuery alloc] initWithRecordType:@"Users" predicate:predicate];
[_publicDB performQuery:query inZoneWithID:nil completionHandler:^(NSArray *results, NSError *error)
if (error)
// Error handling for failed fetch from public database
NSLog(@"Error:%@", error);
else
// Display the fetched records
NSLog(@"Users: %@", results);
];
我收到这样的错误:
Error:<CKError 0x7f9c6b7331f0: "Permission Failure" (10/2007); server message = "Can't query system types"; uuid = 9CBA8EB0-D9DC-46B2-BDF4-10C036599642; container ID = "iCloud.com.xxx.xxx.MyApp">
你知道我怎样才能做到这一点吗?我想从客户端的角度 (ios) 了解使用我的应用的其他用户是什么。
【问题讨论】:
【参考方案1】:用户记录类型是您无法查询的特殊记录类型。如果要执行此类查询,则应创建自己的 recordType 并为每个用户插入一条记录。
【讨论】:
感谢您的确认。我也在考虑一个新的记录类型,它将存储索引用户 ID。感谢您的快速回复。老实说,用户记录类型应该是可查询的,以避免像我这样的数据重复;) 过去该表还包含名字和姓氏。我想出于隐私原因,查询用户是有限的。 CloudKit 应用程序投入生产后,您能否在 CloudKit 仪表板中看到每个使用您的应用程序的User
的 iCloud 用户 ID?以上是关于CloudKit 获取所有用户记录的主要内容,如果未能解决你的问题,请参考以下文章
CloudKit 光标错误和无法返回所有行 - 获取记录时遇到错误