swift - 如何从 FireStore 查询数据?
问题描述
我尝试使用地图从 Firestore 查询数据。我的问题是我不能从火库中只得到一个字段。
下面的代码是我的数据模型的结构。
用户数据.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.
我怎样才能通过订单只得到一个名字?
解决方案
推荐阅读
- javascript - 如何将范围数据传递给简单的 var 数组?
- entity-framework-core - InvalidOperationException with $top or $skip in OData Expand
- c# - csv文件表名可以与文件名不同吗?在c#中如何
- python-3.x - 为什么我们将valid_input初始化为false并在这个python代码中使用'while not' valid_input
- javascript - 计算购物车内产品的总成本并显示在底部而不是手动输入
- python - 在python中用逗号分隔的现有字符串添加一个新的字符串值
- python - Python - 从星期几、年份和星期数获取日期
- html - 检查第二个 li 元素是否有当前类
- express - GitHub API 没有响应输出
- android - Kotlin - 如何从数据类列表中更新特定值