2017-01-24 92 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