云套件:如何仅从您的联系人组获取 public 数据库订阅通知

Cloud kit: how to get public database subscription notification from your group of contacts only

我在 public 数据库中有位置详细信息的 CKRecord。我想为包含位置详细信息的 CKrecord 创建订阅,存储在 public 数据库中。我想设置订阅,以便仅从我的联系人组中的那些人那里收到通知。 Location CKrecord 上的订阅通知通知我所有需要花费更多时间进行排序的用户,我想避免这种情况。

如何设置订阅?

假设您的 Location recordType 上有某种 userEmail 字段,您可以像这样查询这些记录:

let predicate = NSPredicate(format: "userEmail = %@", argumentArray: ["name@example.com"])
  
let query = CKQuery(recordType: "Location", predicate: predicate)
let operation = CKQueryOperation(query: query)
  
var records = [CKRecord]()
operation.recordFetchedBlock = { record in
  records.append(record)
}

operation.queryCompletionBlock = { cursor, error in
  print("Done.")
  print(records)
}

CKContainer(identifier: "iCloud.yourContainer").publicCloudDatabase.add(operation)