Я хочу получить данные от команды по сбору подписок.

enter image description here

Я пытаюсь выполнить следующий код:

db.collection("subscriptions").addSnapshotListener { querySnapshot, error in
    guard let snapshot = querySnapshot else {
        print("Error retreiving snapshots \(error!)")
        return
    }

    //print("Current data: \(snapshot.documents.map { $0.data() })")

    for document in snapshot.documents{
        print(document.data())
    }
}

Вывод моего кода

enter image description here

Итак, что касается, я могу получить данные коллекций, но не могу получить данные от команды, помогите мне, спасибо за поддержку

1
Pankaj99 25 Май 2018 в 12:06

1 ответ

Лучший ответ

Если вы не хотите прослушивать каждое событие, используйте метод getDocuments вместо addSnapshotListener.

/// This will give you team data
document.data()["team"]

После получения информации о team из firestore. Вот как получить name и officeId:

if let teamInfo = document.data()["team"] as? [String: Any] {
   let teams = teamInfo.map {$0.value}
   for team in teams {
       guard let validTeam = team as? Dictionary<String, Any> else {continue}
       let name = validTeam["name"] as? String ?? ""
       let officeId = validTeam["officeId"] as? String ?? ""
       print("name: \(name), officeId: \(officeId)")
   }
}

Вывод

name: Developer Ratufa, officeId: myuPlTBO8sEM4SOQ8rWY
name: , officeId: myuPlTBO8sEM4SOQ8rWY
1
TheTiger 25 Май 2018 в 11:53