提问人:William Daly 提问时间:11/7/2023 最后编辑:William Daly 更新时间:11/7/2023 访问量:44
如何在 UITableView 上读取 Firebase 数据库中的数据?
How can I read data from my Firebase database on my UITableView?
问:
我是一个相对较新的 Swift 程序员,我是第一次使用 Firebase,所以请原谅我可能有的任何误解和我对术语的缺乏了解。
我正在尝试在我正在制作的应用程序中查看 Firebase 数据库中的数据。虽然我已经获得了从应用程序写入数据库的数据,但我无法让它从数据库读回应用程序。数据应该显示在我已链接的 UITableView 中。
以下是有关从 Firebase 数据库中读取信息并将其显示在表格视图中的主要代码块。我相信问题出在某个地方。下面是项目中涉及的其他两个代码块。
//
// JobInternshipViewController.swift
// Final Project
//
// Created by William Daly on 10/30/23.
//
import UIKit
import Firebase
import FirebaseDatabase
class JobInternshipViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var jobList = [JobModel]()
@IBOutlet weak var jobTable: UITableView!
public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return jobList.count
}
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as! JobViewControllerTableViewCell
let job: JobModel
job = jobList[indexPath.row]
cell.lblListID.text = job.listID
cell.lblTitle.text = job.title
cell.lblCompany.text = job.company
cell.lblDatePosted.text = job.datePosted
cell.lblApplicationDeadline.text = job.applicationDeadline
cell.lblFulltimeOrIntern.text = job.fulltimeOrIntern
cell.lblSalary.text = job.salary
cell.lblLocation.text = job.location
cell.lblStartingDate.text = job.startingDate
cell.lblEndingDate.text = job.endingDate
cell.lblRemoteOrOnsite.text = job.remoteOrOnsite
return cell
}
var refJobs: DatabaseReference!
override func viewDidLoad() {
super.viewDidLoad()
refJobs = Database.database().reference().child("Jobs");
refJobs.observe(DataEventType.value, with:{(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 jobID = jobObject?["listID"]
let jobTitle = jobObject?["Title"]
let jobCompany = jobObject?["Company"]
let jobDatePosted = jobObject?["DatePosted"]
let jobApplicationDeadline = jobObject?["ApplicationDeadline"]
let jobFulltimeOrIntern = jobObject?["FulltimeOrIntern"]
let jobSalary = jobObject?["Salary"]
let jobLocation = jobObject?["Location"]
let jobStartingDate = jobObject?["StartingDate"]
let jobEndingDate = jobObject?["EndingDate"]
let jobRemoteOrOnsite = jobObject?["RemoteOrOnsite"]
let job = JobModel(listID: jobID as! String?, title: jobTitle as! String?, company: jobCompany as! String?, datePosted: jobDatePosted as! String?, applicationDeadline: jobApplicationDeadline as! String?, fulltimeOrIntern: jobFulltimeOrIntern as! String?, salary: jobSalary as! String?, location: jobLocation as! String?, startingDate: jobStartingDate as! String?, endingDate: jobEndingDate as! String?, remoteOrOnsite: jobRemoteOrOnsite as! String?)
self.jobList.append(job)
}
self.jobTable.reloadData()
}
})
}
}
这是 tableviewcell 本身的代码:
// JobViewControllerTableViewCell.swift
// Final Project
//
// Created by William Daly on 10/30/23.
import UIKit
class JobViewControllerTableViewCell: UITableViewCell {
@IBOutlet weak var lblListID: UILabel!
@IBOutlet weak var lblTitle: UILabel!
@IBOutlet weak var lblCompany: UILabel!
@IBOutlet weak var lblDatePosted: UILabel!
@IBOutlet weak var lblApplicationDeadline: UILabel!
@IBOutlet weak var lblFulltimeOrIntern: UILabel!
@IBOutlet weak var lblSalary: UILabel!
@IBOutlet weak var lblLocation: UILabel!
@IBOutlet weak var lblStartingDate: UILabel!
@IBOutlet weak var lblEndingDate: UILabel!
@IBOutlet weak var lblRemoteOrOnsite: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
}
这是用于生成和定义 jobModel 的代码
// JobModel.swift
// Final Project
//
// Created by William Daly on 10/30/23.
class JobModel
{
var listID: String?
var title: String?
var company: String?
var datePosted: String?
var applicationDeadline: String?
var fulltimeOrIntern: String?
var salary: String?
var location: String?
var startingDate: String?
var endingDate: String?
var remoteOrOnsite: String?
init(listID: String?, title: String?, company: String?, datePosted: String?, applicationDeadline: String?, fulltimeOrIntern: String?, salary: String?, location: String?, startingDate: String?, endingDate: String?, remoteOrOnsite: String?)
{
self.listID = listID
self.title = title
self.company = company
self.datePosted = datePosted
self.applicationDeadline = applicationDeadline
self.fulltimeOrIntern = fulltimeOrIntern
self.salary = salary
self.location = location
self.startingDate = startingDate
self.endingDate = endingDate
self.remoteOrOnsite = remoteOrOnsite
}
}
这是通过我的应用程序将数据输入数据库的方式:
答: 暂无答案
上一个:Firebase 查询的读取计数
下一个:未找到 FirebaseCore
评论