首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >检索所有数据值firebase swift

检索所有数据值firebase swift
EN

Stack Overflow用户
提问于 2019-05-10 07:54:13
回答 1查看 33关注 0票数 0

在我的数据库中,"deviceRooms1,deviceRooms2,...“我有以下形式的数据。它们都在房间的桌子上。当您将数据添加到房间表中时,数据将以deviceRooms1+1的形式出现。如何在向此房间表中添加数据时提取所有deviceRooms数据?例如,在我的代码中,我可以将数据上传到devicerooms5。如何在添加设备命令时将其自动添加到ArrayList?

代码语言:javascript
复制
class MainRoomTableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 
 private var myTableView: UITableView!
    var tableRowss = [String]()
 @objc func addRoom() {
        let alert = UIAlertController(title: "Oda Ekle", message: "Oda ekle", preferredStyle: .alert)

        alert.addTextField { (textField) in
            textField.placeholder = "Odanın Adını Giriniz.."
        }

        alert.addAction(UIAlertAction(title: "Oda?", style: .default, handler: { [weak alert] (_) in
            let text = alert?.textFields![0]
            self.tableRowss.append((text?.text)!)
            let ref = Database.database().reference()

            let countıtem: Int = (Int(self.tableRowss.count))
            ref.child("0").child("Rooms").child("Rooms" + String(countıtem)).setValue(text?.text)
            self.myTableView.reloadData()

        }))
        self.present(alert, animated: true, completion: nil)
    }
 @objc func fetchRooms()
        {

            let ref = Database.database().reference().child("0").child("Rooms")

            ref.observeSingleEvent(of: .value, with: { (snapshot) in
                let value: NSDictionary = snapshot.value as! NSDictionary

                // let deviceTitle: String = value["title"] as! String

                let deviceRooms1 = value["Rooms1"] as? String ?? ""
                let deviceRooms2 = value["Rooms2"] as? String ?? ""
                let deviceRooms3 = value["Rooms3"] as? String ?? ""
                let deviceRooms4 = value["Rooms4"] as? String ?? ""
                let deviceRooms5 = value["Rooms5"] as? String ?? ""
                self.tableRowss.append(deviceRooms1)
                self.tableRowss.append(deviceRooms2)
                self.tableRowss.append(deviceRooms3)
                self.tableRowss.append(deviceRooms4)
                self.tableRowss.append(deviceRooms5)

                self.myTableView.reloadData()
            })

    }
 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        print("Num: \(indexPath.row)")
        print("Value: \(tableRowss[indexPath.row])")
    }

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

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "MyCell", for: indexPath as IndexPath)
        cell.textLabel!.text = "\(tableRowss[indexPath.row])"
        return cell
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-10 08:06:26

你可以试试

代码语言:javascript
复制
 let dic = snapshot.value as! [String:String]
 self.tableRowss = Array(dic.values)
 self.myTableView.reloadData()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56068994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档