2017-01-24 72 views
0

目前我正在显示用户的联系人这样从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? 当你创建一个新的联系人时,它会自动将你的电子邮件的值分配给addedByUser。 因此,举例来说,如果我从新增帐户[email protected]接触将只显示值addedByUser接触:“秀@ mycontact”

enter image description here

回答

2

更新的答案 - 有两个选项:-)

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) 
    }) 
+0

不活像国王m8 .. – patrikbelis

+0

多么奇怪。当然适合我。愚蠢的问题 - 但你可以证实你确实有一个$ 0的字段'addedByUser',当然你已经改变self.myEmailAddress到你自己的变量? – Russell

+0

是的,是的.... – patrikbelis