图书共享与搜索功能开发指南
共享图书数据库查询
查询差异与原理
在查询共享数据库以获取其他用户共享的所有图书记录时,与常规数据库查询有两个显著差异:
- 记录区域(Record Zone) :每个共享用户记录都存储在系统定义的唯一记录区域中,这样可以限制访问权限,确保只有相关用户能够访问共享记录。查询不同图书追踪器用户的所有共享记录时,需要查询所有可用的用户记录区域。
- 共享数据库(Shared Database) :之前的查询是针对私有数据库,而查询共享图书时,需要查询共享数据库。
共享任务区域查询
在查询共享数据库之前,需要获取其他用户共享的所有区域。可以通过以下代码实现:
//MARK: - Get the Zones
/*
Before doing any query on Shared Databases we need to
retrieve all zones that the other users have shared. The
sharedTasksZones function retrieves all such zone and
stores it in a class level variable sharedRecordZones
*/
func sharedTasksZones(period: String){
let sharedData = CKContainer.default().sharedCloudDatabase