«Распаковка» данных, полученных из Firebase - PullRequest
0 голосов
/ 04 ноября 2018

Итак, мне удалось получить data из Firebase, и при печати это выглядит так:

[Resturant.CustomerList (ключ: "-LQQlhEmNZb8Kaha9uCk", customerLastName: «Кендрик», customerFirstName: «Анна», customerSat: «100», Заказ клиента: «Лапша», отметка времени: 1541290545703.0)]

Вопрос: Как мне развернуть их, чтобы я мог поместить индивидуальное значение в другие строковые переменные? Я пробовал много способов, но я получаю ошибки, такие не могут подписать значение типа [CustomerList] с индексом типа String, если я делаю что-то вроде let custName = self.list["Name"] as? String

пс. CustomerList является struct имп. Печать list - это то, что показано

1 Ответ

0 голосов
/ 04 ноября 2018

Поскольку у вас есть список CustomerList объектов, т.е. [CustomerList], поэтому вы должны сначала получить один объект из этого list. Допустим, мы хотим, чтобы самый первый объект из этого list получил доступ к его свойствам, тогда мы можем сделать это, как показано ниже,

if let firstCustomer = self.list.first {
    let firstName = firstCustomer.customerFirstName
    let lastName = firstCustomer.customerLastName
}

Если вы хотите получить доступ к объекту с определенной index, вы можете сделать, как показано ниже,

let index = 0
let customer = self.list[index]
let firstName = customer.customerFirstName
let lastName = customer.customerLastName

Чтобы найти конкретный customer, вы можете filter, как показано ниже,

let johny = self.list.filter{ $0.customerFirstName == "Jonhny"}.first {
    print(johny.customerLastName)
}

Чтобы получить пользовательский список, созданный из списка клиентов, вы можете использовать map, как показано ниже,

let lastNamesArray = self.list.map({ $0.customerLastName })
...