Как получить только UID из firebase и показать в TableView - PullRequest
0 голосов
/ 21 мая 2019

Теперь он получает всю информацию из базы данных. Я хочу, чтобы он получал только информацию от пользователей, у которых storename в базе данных.

Я могу получить все, кроме тех, которые не имеют storename, в моем приложении будет показана пустая таблица.

Моя база данных из Firebase database My TableView my table

мой код, как я могу получить его

override func viewDidLoad() {
        super.viewDidLoad()


        let refList = Database.database().reference().child("Users/Sellers")
        refList.observe(DataEventType.value, with:{(snapshot) in
            if snapshot.childrenCount>0{
                self.listProduct.removeAll()

                for lists in snapshot.children.allObjects as! [DataSnapshot]{
                    let productList = lists.childSnapshot(forPath: "user_info")
                    let userList = productList.value as? [String: AnyObject]
                    let listName = userList?["storename"]
//                    print("the Key value  \(lists.key) " )
                    print("key = \(self.shops)")
                    let list = StoreModel(name: listName as! String?)
                    self.shops.append(Shop(storename: listName as! String?, shop_id: lists.key ))
                    self.listProduct.append(list)
                }
                self.tableList.reloadData()
            }

        })

    }

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return  UITableView.automaticDimension
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return listProduct.count

    }

Я хочу, чтобы он извлекал только информацию из пользователей, у которых storename в базе данных, и отображал ее в виде таблицы.

1 Ответ

0 голосов
/ 21 мая 2019

Можно попробовать

refList.observe(.value, with:{(snapshot) in
    if snapshot.childrenCount > 0 {
        self.listProduct.removeAll()

        for lists in snapshot.children.allObjects as! [DataSnapshot]{
            let productList = lists.childSnapshot(forPath: "user_info")
            let userList = productList.value as? [String: AnyObject]
            if let listName = userList?["storename"] as? String {
                let list = StoreModel(name: listName)
                self.shops.append(Shop(storename: listName, shop_id: lists.key ))
                self.listProduct.append(list)

            }
        }
        self.tableList.reloadData()
    }

})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...