Если вы хотите сделать это таким образом, сначала вам нужно добавить свойство documentID к вашему UsersNames
объекту:
struct UsersNames {
var documentID: String //<-- Add this
var name: String
}
Затем обновите функцию loadData()
в вашем первом VC, чтобы получитьdocumentID
из каждого Firestore
документа и добавьте его в Array
:
for document in querySnapshot!.documents {
let data = document.data()
let documentID = document.documentID //<-- Add this
let name = data["name"] as? String ?? ""
let newName = UsersNames(documentID: documentID, name: name) //<-- Change this
self.nameArray.append(newName)
}
В First VC вы хотите выполнить Segue
для вашего Second VC, когда ячейка выбрана, ипередайте documentID
для выбранного объекта в Array
во второй виртуальный канал.
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "SecondVC", sender: self)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let indexPath = tableView.indexPathForSelectedRow {
let destinationVC = segue.destination as! SecondVC
let documentId = nameArray[indexPath.row].documentID
destinationVC.documentID = documentID
}
}
В вашем SecondVC создайте свойство для получения documentID:
var documentID: String!
В вашемФункция SecondVC loadData()
, теперь вы можете получить доступ к документу ID, который был передан с вашего первого VC:
db.collection("Users").document(documentID).collection("Friends").getDocuments() { //..