【发布时间】:2019-07-30 09:15:04
【问题描述】:
这是我的 Firebase 数据库:
这是我的代码:
class AdminSearchViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var ref: DatabaseReference!
var jobList = [jobModel2]()
@IBOutlet weak var tlb2: UITableView!
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell2", for: indexPath) as! ViewController2TableViewCell
let job: jobModel2
job = jobList[indexPath.row]
cell.ship.text = job.consignee
cell.reference.text = job.reference
return cell
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return jobList.count
}
override func viewDidLoad() {
super.viewDidLoad()
if FirebaseApp.app() == nil {
FirebaseApp.configure()
}
Database.database().reference().child("jobs").observe(DataEventType.value) { (snapshot) in
if snapshot.childrenCount>0 {
self.jobList.removeAll()
for jobs in snapshot.children.allObjects as! [DataSnapshot]{
let jobObject = jobs.value as? [String: AnyObject]
let jobConsignee = jobObject?["consignee"]
let jobReference = jobObject?["reference"]
let job = jobModel2( consignee: jobConsignee as! String?,
reference: jobReference as! String?
)
self.jobList.append(job)
}
self.tlb2.reloadData()
}
}
}
}
我面临的问题是它们在我的 TableView 中没有出现,我认为这与 .childs 有关,因为我认为我需要将其从“工作”更改为某些东西,但我想不通出去。
我想显示来自所有 UID 的所有引用的列表,而不仅仅是一个。
打印中显示的代码:
func readJobs() {
let ref = Database.database().reference()
let ref1 = ref.child("jobs").queryOrderedByKey()
ref1.observeSingleEvent(of: .value, with: { snapshot in
let allUsersAndJobs = snapshot.children.allObjects as! [DataSnapshot]
for user in allUsersAndJobs {
let uid = user.key
print("user id: \(uid)")
let thisUsersJobs = user.children.allObjects as! [DataSnapshot]
for job in thisUsersJobs {
let jobKey = job.key
let consignee = job.childSnapshot(forPath: "consignee").value as! String
print(" job #: \(jobKey)")
print(" consignee: \(consignee)")
}
}
})
}
【问题讨论】:
-
最好将代码和结构包含为文本,而不是链接和图像。要获取您的 Firebase 结构,请使用 Firebase 控制台->导出 JSON 并复制粘贴您的结构的 sn-p。见images and links are evil
标签: ios swift firebase firebase-realtime-database