有没有办法用数组构造一个 Firestore 字段(同名)并显示 TableView 中每个字段的每个数组元素
Posted
技术标签:
【中文标题】有没有办法用数组构造一个 Firestore 字段(同名)并显示 TableView 中每个字段的每个数组元素【英文标题】:Is there a way to struct a Firestore fields(same name) with arrays and show each array element from each field in TableView 【发布时间】:2019-04-12 17:02:23 【问题描述】:我正在开发一个 ios 应用程序,我想在表格视图中显示所有文档字段中的数组字符串。
这是我的数组结构。
struct Test
var car: Array<String>
var dictionary: [String: Any]
return [
"car":car
]
extension Test
init?(dictionary: [String : Any])
guard let car = dictionary["car"] as? Array<String>
else return nil
self.init(car:car)
这是我获取数据的代码。
func loadData()
let db = Firestore.firestore()
db.collection("test").getDocuments()
querySnapshot, error in
if let error = error
print("\(error.localizedDescription)")
else
self.testArray = querySnapshot!.documents.compactMap(Test(dictionary: $0.data()))
print(self.testArray)
DispatchQueue.main.async
self.tableView.reloadData()
这是我的 tableView 代码。
override func numberOfSections(in tableView: UITableView) -> Int
return 1
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return testArray.count
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
let item = testArray[indexPath.row].car[indexPath.row]
cell.textLabel!.text = ("\(item)")
return cell
一切似乎都很好,但是当运行应用程序时,表格视图显示第一行中第一个文档的 [0],第二行第二个文档中的 [1] 等。我想显示整个数组第一个文档,然后是第二个文档等的整个数组。
【问题讨论】:
【参考方案1】:你需要多个部分
override func numberOfSections(in tableView: UITableView) -> Int
return testArray.count
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return testArray[section].car.count
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
cell.textLabel!.text = testArray[indexPath.section].car[indexPath.row]
return cell
【讨论】:
以上是关于有没有办法用数组构造一个 Firestore 字段(同名)并显示 TableView 中每个字段的每个数组元素的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法使用Firestore安全规则使用FieldValue.increment()更新文档字段?