Расшифруйте массив коллекций из Firebase Cloud Firestore с помощью кодируемого - PullRequest
0 голосов
/ 21 июня 2019

Я искал повсюду и не могу найти ничего, что помогло бы решить мою проблему.

В Cloud Firestore я хочу получить все документы в коллекции, что достаточно просто, например:

let ref = db.collection("users")
ref.getDocuments { (collection, error) in
            guard let documents = collection?.documents else {
            return
        }
// I have an array of documents here
}

Я хочу декодировать этот массив документов, используя Codable Firebase , который отлично работает при получении одного документа:

let user = try? FirestoreDecoder().decode(User.self, from: document.data())

Но я не могу сделать:

let users = try? FirestoreDecoder().decode([User].self, from: documents.map { $0.data() })

например, из моего массива документов из коллекции в качестве аргументов data: [String: Any]

Я мог бы декодировать каждый документ один за другим в цикле for, но я использую обобщенные значения, поэтому, если я передам [User] в качестве моего ожидаемого общего ответа, я не смогу затем в своем цикле for увидеть, что такое общий элемент, и насколько мне известно, конвертируйте в User.self, а не [User].self.

Любые советы будут с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...