【发布时间】:2021-05-06 00:47:52
【问题描述】:
我有一个 tableViewController 并且它从 Firestore 获取数据,我在这个 tableView 中有一个 refreshController 我想要从 Firestore 重新加载新数据,如果 Firestore 中有新数据并且用户刷新 tableView 我想要检索的新数据(仅)不是所有的数据。我尝试使用 reloadData() 但它重新加载所有数据并在 tableView 中再次添加它
这是我的代码
import UIKit
import FirebaseFirestore
import Firebase
import FirebaseAuth
import UserNotifications
class TableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate {
@IBOutlet var tableView: UITableView!
var db: Firestore!
var street = [String]()
var firstName = [String]()
var lastName = [String]()
var blockNumber = [String]()
var phone = [String]()
var reciept = [String]()
var houseNumber = [String]()
var price = [String]()
var amount = [String]()
var block = [String]()
var Area = [String]()
var names = [String]()
var refreshControl = UIRefreshControl()
override func viewDidLoad() {
super.viewDidLoad()
refreshControl.attributedTitle = NSAttributedString(string: "")
refreshControl.addTarget(self, action: #selector(self.refresh(_:)), for: .valueChanged)
tableView.addSubview(refreshControl) // not required when using UITableViewController
tableView.register(UINib(nibName: "TableViewCell", bundle: nil) , forCellReuseIdentifier: "Cell")
tableView.separatorStyle = .none
tableView.dataSource = self
tableView.delegate = self
db = Firestore.firestore()
self.navigationItem.setHidesBackButton(true, animated: true)
NotificationCenter.default.addObserver(self, selector: #selector(setter: tableView), name: NSNotification.Name(rawValue: "notificationName"), object: nil)
}
@objc func refresh(_ sender: AnyObject) {
tableView.reloadData()
refreshControl.endRefreshing()
}
func loadData1() {
Firestore.firestore().collection("hola").getDocuments() { [self]
(querySnapshot, err) in
if let err = err
{
print("Error getting documents: \(err)");
}
else
{
var count = 0
for document in querySnapshot!.documents {
count += 1
print("\(document.documentID) => \(document.data())");
self.firstName.append(document.get("firstname") as? String ?? "")
self.lastName.append(document.get("lastname") as? String ?? "")
self.street.append(document.get("street") as? String ?? "")
self.blockNumber.append(document.get("blockNumber") as? String ?? "")
self.Area.append(document.get("area") as? String ?? "")
self.phone.append(document.get("phone") as? String ?? "")
self.reciept.append(document.get("reciept") as? String ?? "")
self.houseNumber.append(document.get("houseNumber") as? String ?? "")
self.price.append(document.get("total price") as? String ?? "")
self.amount.append(document.get("amount") as? String ?? "")
}
}
self.tableView.reloadData()
}
}
【问题讨论】:
标签: arrays swift firebase uitableview google-cloud-firestore