gpt4 book ai didi

swift - 我正在获取无效的文档引用。文档引用在xcode中必须具有偶数个段错误

转载 作者:行者123 更新时间:2023-12-03 08:39:44 24 4
gpt4 key购买 nike

class RoomFeed: UIViewController, UITableViewDelegate, UITableViewDataSource{
let posts = Post(id: self.documentId , author: owner!, text: text!, amount: self.amount)
//This is called in the view controller which is "host of table View" 
//Document Id at this point is not nill confirmed.


}





class PostTableVIewCell: UITableViewCell {
//This is table view cell

var king: String!
var postID: String!

override func awakeFromNib() {
super.awakeFromNib()

Firestore.firestore().collection("GeneralData").document("\(self.postID)").getDocument { document, err in
if let document = document, document.exists {
let data = document.data()
self.king = data!["1"] as? String
let placeamount = data!["amount"] as? String
self.amountLabel.text = placeamount

}
print("KING: \(self.king!)")
self.kingLabel.text = self.king
}}

func set(post:Post) {

usernameLabel.text = post.author
PostTextLabel.text = post.text
self.amount = post.amount
postID = post.id
}
}
这是我的代码,但出现错误,提示“''FIRESTORE内部断言失败:无效的文档引用。文档引用必须具有偶数个段”我在做什么错?
this is data structure

最佳答案

您可能是错误的方法。我为您编写了示例代码,可能会对您有所帮助。如果您需要更多帮助,请给我写评论。
ViewController.swift

import UIKit
import Firebase

class ViewController: UIViewController {

@IBOutlet weak var tableView: UITableView!

var postDataList = [Post]()

override func viewDidLoad() {
super.viewDidLoad()

self.tableView.delegate = self
self.tableView.dataSource = self

Firestore.firestore().collection("GeneralData").getDocuments { document, err in
if let document = document {
let dataDescription = document.documents

for i in dataDescription {
let post = Post.init(data: i.data())
self.postDataList.append(post)
}

self.tableView.reloadData()
}
else {
print("Document does not exist")
}
}
}

}

extension ViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.postDataList.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CustomTableViewCell

let post = self.postDataList[indexPath.row]
cell.setPost(post: post)

return cell
}

}
CustomTableViewCell.swift
import UIKit

class CustomTableViewCell: UITableViewCell {

@IBOutlet weak var usernameLabel: UILabel!
@IBOutlet weak var postTextLabel: UILabel!
@IBOutlet weak var amountLabel: UILabel!

override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}

func setPost(post: Post) {
self.usernameLabel.text = post.name
self.postTextLabel.text = post.text
self.amountLabel.text = String(post.amount)
}

}
Post.swift
struct Post {
let name: String
let surname: String
let owner: String
let amount: Int
let text: String
let uid: String

init(data: [String: Any]) {
self.name = data["name"] as! String
self.surname = data["surname"] as! String
self.owner = data["owner"] as! String
self.amount = data["amount"] as! Int
self.text = data["text"] as! String
self.uid = data["uid"] as! String
}
}
这是数据库应具有的结构:
enter image description here

关于swift - 我正在获取无效的文档引用。文档引用在xcode中必须具有偶数个段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62884146/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com