[英]Fetching user's data from firebase?
目前,我正在以這種方式顯示用戶的聯系人
ref.observe(.value, with: { snapshot in
var newItems: [Contacts] = []
for item in snapshot.children {
let contact = Contacts(snapshot: item as! FIRDataSnapshot)
newItems.append(contact)
}
// filter the data here
let userID = FIRAuth.auth()?.currentUser?.email
let itemsMatching = self.items.filter {
$0.addedByUser == userID
}
self.items = newItems
let sortedNames = itemsMatching.sorted { $0.lastName < $1.lastName }
self.tableView.reloadData()
})
如何僅顯示與addedByUser列中具有相同電子郵件的用戶? 當您創建新的聯系人時,它將自動將您的電子郵件的值分配給addByUser。 因此,例如,如果我從帳戶show@mycontact.com添加聯系人,它將僅顯示具有添加值的聯系人。ByUser:“ show @ mycontact”
更新的答案-有兩個選項:-)
let ref = FIRDatabase.database().reference(withPath: "contacts")
var newItems : [ContactItem] = []
ref.observe(.value, with: { snapshot in
for item in snapshot.children
{
let item = ContactItem(snapshot: item as! FIRDataSnapshot)
newItems.append(item)
}
let userID = FIRAuth.auth()?currentUser?.email
let itemsMatching = newItems.filter
{
$0.addedByUser == userID
}
let sortedNames = itemsMatching.sorted { $0.lastName < $1.lastName }
print(sortedNames)
})
另一方面,考慮到仍然要遍歷快照,您總是可以采用簡單的方法
let ref = FIRDatabase.database().reference(withPath: "contacts")
var newItems : [ContactItem] = []
let userID = FIRAuth.auth()?currentUser?.email
ref.observe(.value, with: { snapshot in
for item in snapshot.children
{
let item = ContactItem(snapshot: item as! FIRDataSnapshot)
if item.addedByUser == userID
{
newItems.append(item)
}
}
let sortedNames = newItems.sorted { $0.lastName < $1.lastName }
print(sortedNames)
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.