2017-01-24 25 views
0

現在、私はこの方法で私は列addedByUserと同じメールを持つユーザーのみを表示するにはどうすればよい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に自動的に割り当てられます。私はアカウント[email protected]から連絡先を追加する場合 だから例えば、それは、値addedByUserと連絡先のみが表示されます:「ショーの@ mycontact」

enter image description here

答えて

2

更新の答えを - 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

ませんでしたWOR王m8 .. – patrikbelis

+0

どのくらい奇妙な。確かに私のために働く。ばかげた質問ですが、$ 0に 'addedByUser'フィールドがあることを確認できますか?もちろんself.myEmailAddressを独自の変数に変更しましたか? – Russell

+0

はいとはい.... – patrikbelis

関連する問題