簡體   English   中英

從Firebase提取用戶數據?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM