我使用Firebase Firestore来保存我的应用程序的数据。我有一个对象的对象作为我的一个文档的字段,它看起来像这样:
因此,有语言对象,它具有字段记录(Int)和字段daily(Object)。它添加新数据的问题。
我找到了使用SwiftJson解析数据的方法。
let docRef = db.collection("users").document(uid).collection("activities").document(uid)
docRef.getDocument { (qs, err) in
if let err = err {
print("Error retrieving document \(err.localizedDescription)")
} else {
if let document = qs {
let doc = document.data()
SVProgressHUD.dismiss()
do {
let json = try JSON(doc)
for i in 0..<json["language"]["daily"].count {
print(json["language"]["daily"]["\(i + 1)"]["date"])
print(json["language"]["daily"]["\(i + 1)"]["points"])
}
} catch {
}
}
}
}
计划每天保存你产生的积分,这就是为什么我有这个对象。因此,问题是为对象添加一个新值&#34;每日&#34;。你会怎么做?或者你想到另一种方式吗?
答案 0 :(得分:0)
在大多数NoSQL数据库中,解决用例的关键是找到一个有效的模型来存储数据。
在您的情况下,您似乎想要存储每个数据的点数。您似乎每个日期只能有一个点数。
在这种情况下,使用日期作为存储点数的关键是最有意义的。所以在您的示例文档中:
language: {
daily: {
"2018-03-17": 1200,
"2018-03-18": 1250
},
record: 1120
}
我所做的改变(以及原因):