Ответ будет зависеть от того, как вы хотите работать с данными, но есть два способа. Но ваш инстинкт верен - вам нужно следить за документами клиентов.
Так что вы можете сделать это при чтении клиентов из Firestore и передать все строки и идентификатор документа для заполнения каждого объекта
class CustomerLsModel{
var firstname: String!
var lastname: String?
var address: String?
var docId: String!
init(firstname: String?, lastname: String?, address: String?, docId: String) {
self.firstname = firstname
self.lastname = lastname
self.address = address
self.documentId = docId
}
}
или то, что делает код немного проще, передавая снимок Firestore оттуда
class CustomerLsModel {
var firstname: String?
var lastname: String?
var address: String?
var docId: String!
init(withDoc: QueryDocumentSnapshot) {
self.docId = withDoc.documentID
self.firstname = withDoc.get("first_name") as? String ?? "no first"
self.lastname = withDoc.get("last_name") as? String ?? "no last"
self.address = withDoc.get("addres") as? String ?? "no address"
}
}
оттуда, когда пользователь выбирает клиента, вы можете либо передать этот объект в контроллер подробного представления для отображения или просто передайте docId и используйте его в дочернем viewController для чтения данных из Firestore.
Существует около 100 способов «передачи» данных - Segue - популярный выбор, который вы могли бы также установите переменную customer в детальном viewController, иначе детальная информация может считывать данные из мастера. Это действительно зависит от вашего варианта использования.