简体   繁体   English

我得到无效的文档参考。 文档引用必须在 xcode 中有偶数段错误

[英]Im getting Invalid document reference. Document references must have an even number of segments error in xcode

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
        }
}

This is my code but I'm getting an error which states "'FIRESTORE INTERNAL ASSERTION FAILED: Invalid document reference. Document references must have an even number of segments" what am I doing wrong?这是我的代码,但我收到一条错误消息,指出“'FIRESTORE INTERNAL ASSERTION FAILED: Invalid document reference. Document references must have a even number of segments”我做错了什么?

这是数据结构

You are probably wrong approach.你可能是错误的方法。 I wrote you an example code that might help you.我给你写了一个可能对你有帮助的示例代码。 Write me a comment if you need more help.如果您需要更多帮助,请给我写评论。

ViewController.swift 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 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邮政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
    }
}

This is the structure your database should have:这是您的数据库应该具有的结构: 在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 无效的文档参考。 文档引用必须有偶数个段,但喜欢有 1 个 - Invalid document reference. Document references must have an even number of segments, but likes has 1 无效的文档参考。 文档引用必须有偶数个段,但用户有 1' - Invalid document reference. Document references must have an even number of segments, but Users has 1' 主题 1:FIRESTORE 内部断言失败:文档参考无效。 文档引用必须有偶数个段,但 Posts 有 1 个? - Thread 1: FIRESTORE INTERNAL ASSERTION FAILED: Invalid document reference. Document references must have an even number of segments, but Posts has 1? '无效的文档参考。 尝试编辑/删除新条目时,文档引用必须具有偶数段 - 'Invalid document reference. Document references must have an even number of segments' when trying to edit/delete new entry “FIRESTORE 内部断言失败:文档引用无效。文档引用必须有偶数个段,但 NewGame 有 1 个” - "FIRESTORE INTERNAL ASSERTION FAILED: Invalid document reference. Document references must have an even number of segments, but NewGame has 1" Swift - Firestore 文档引用必须具有偶数个段,但 - Swift - Firestore Document references must have an even number of segments, but 为什么我在Swift中收到有关段的文档引用错误? - Why am I getting a document reference error about segments in Swift? 无效的文档参考 - Invalid document reference Xcode错误:AR参考图像必须具有非零正宽度 - Xcode Error: AR reference image must have non zero positive width 在第二个视图控制器上获取文档参考 - Getting document reference on Second view Controller
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM