从Firestore集合中获取最后一个文档



我有一个tableViewController从Firestore集合中获取文档它叫做paperHole"我有refreshControl,这是一个UIrefreshControl,刷新tableView,但在这个refreshControl动作,我想获取最后的文档只记录在Firestore。我的意思是如果收集"纸洞"有3个文件,这是(A, B, C)和最后一个文件记录在这个集合是C,我想取文件C只。我尝试了limit(toLast: 1),但它对我不起作用

import UIKit
import FirebaseFirestore
import Firebase
import FirebaseAuth
import UserNotifications

class OrderTableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate {


@IBOutlet var order5: UITableView!
struct GlobalVariable{
static var myString = String()
}
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)
order5.addSubview(refreshControl)  
order5.separatorStyle = .none
order5.dataSource = self
order5.delegate = self

db = Firestore.firestore()






}

@objc func refresh(_ sender: AnyObject) {

loadData1Refresh()
}

func loadData1Refresh() {


Firestore.firestore().collection("paperHole").limit(toLast: 1).getDocuments() {
(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.order5.reloadData()

}

}

我认为使用limit是行不通的,除非你也指定一个order

首先,您需要将日期附加到paperHole对象。根据Firebase文档:

重要:与"push id "在Firebase实时数据库中,Cloud Firestore自动生成的id不提供任何自动排序。如果您希望能够根据创建日期对文档进行排序,则应该将时间戳作为文档中的字段存储。

然后你可以使用:

Firestore.firestore().collection("paperHole").order(by: "date", descending: true).limit(to: 1)

相关内容

  • 没有找到相关文章

最新更新