我正在使用firebase和swift . 一旦用户使用FIRAuth登录,我就会获得并验证用户的电话号码,并填写国家/地区代码,例如:18585555555
我将用户名,logindate和phonenumber存储到firebase数据库,并将手机用作KEY . 这是格式:
"users" : {
"+18585555555" : {
"lastLoginDate" : "2016.07.15 21:39:26 GMT+3",
"name" : "John",
"phone" : "+18585555555"
},
"+18585555556" : {
"lastLoginDate" : "2016.07.15 15:46:16 GMT+3",
"name" : "Jane",
"phone" : "+18585555556"
},
"+18585555557" : {
"lastLoginDate" : "2016.07.15 16:13:46 GMT+3",
"name" : "Richard",
"phone" : "+18585555557"
}
}
}
我使用联系商店iOS9获取联系人,如下所示:
private func allContacts() -> [CNContact] {
let contactStore = AppDelegate.getAppDelegate().contactStore
let keysToFetch = [
CNContactFormatter.descriptorForRequiredKeysForStyle(.FullName),
CNContactPhoneNumbersKey,
CNContactImageDataAvailableKey,
CNContactThumbnailImageDataKey
]
var allContainers: [CNContainer] = []
do {
allContainers = try contactStore.containersMatchingPredicate(nil)
} catch {
DLog("Error fetching containers")
}
var results: [CNContact] = []
for container in allContainers {
let fetchPredicate = CNContact.predicateForContactsInContainerWithIdentifier(container.identifier)
do {
let containerResults = try contactStore.unifiedContactsMatchingPredicate(fetchPredicate, keysToFetch: keysToFetch)
results.appendContentsOf(containerResults)
} catch {
DLog("Error fetching results for container")
}
}
return results
}
为简单起见,步骤1:假设电话联系人电话号码的存储方式与数据库格式完全相同 .
现在我想检查手机上的联系人是否存在于数据库中 . 如上所述,数据库可能存储数百万用户,电话号码是关键 .
我是否根据数据库查询手机中的每个号码?如果是这样,你能提供一个查询示例吗? Json数据库对我来说是新的,我甚至无法弄清楚如何逐个查询 .
对于第2步:存储在CNContact中的数字可能在开头有国家/地区代码,可能没有 . 国家代码可以是1或可以是任何东西 . 如果手机有8585555555且db有1858555555现在如何编写查询?
任何正确方向的帮助表示赞赏 .
提前致谢,