Я пытаюсь запросить данные из Firestore, используя карту. Моя проблема в том, что я не могу получить только одно поле из пожарного магазина.
Приведенный ниже код является структурой моей модели данных.
UserData.swift
import Foundation
import FirebaseFirestore
struct UsersData {
var BOOKS_Field:Int
var NAME_FIELD:String
var PHOTO_FIELD:String
var USERLEVEL_FIELD:Int
var dictionary:[String:Any] {
return [
"BOOKS_Field":BOOKS_Field,
"NAME_FIELD":NAME_FIELD,
"PHOTO_FIELD":PHOTO_FIELD,
"USERLEVEL_FIELD":USERLEVEL_FIELD
]
}
}
extension UsersData : DocumentSerializable {
init?(dictionary: [String: Any]) {
guard let BOOKS_Field = dictionary["BOOKS_Field"] as? Int,
let NAME_FIELD = dictionary["NAME_FIELD"] as? String,
let PHOTO_FIELD = dictionary["PHOTO_FIELD"] as? String,
let USERLEVEL_FIELD = dictionary["USERLEVEL_FIELD"] as? Int
else {return nil}
self.init(BOOKS_Field: BOOKS_Field, NAME_FIELD: NAME_FIELD, PHOTO_FIELD:PHOTO_FIELD, USERLEVEL_FIELD:USERLEVEL_FIELD)
}
}
Это место, где я пытаюсь получить пользователей с сервера Firestorm.
func getLeadersfromServer() {
let leaderRef = db.collection("USERS_Collection").order(by: "BOOKS_Field", descending: true).limit(to: 5)
leaderRef.addSnapshotListener { (snapShot, error) in
if let error = error {
print(error)
} else {
for document in (snapShot?.documents)! {
let data = document.data()
let docs = (data.compactMap({_ in UsersData(dictionary: data)}))
let user1 = docs[0]
print(user1.NAME_FIELD)
}
}
}
}
Результат печати можно найти ниже:
Name1 H.
Name2 B.
Как я могу получить только одно имя по заказу?