【发布时间】:2019-01-05 03:25:18
【问题描述】:
我想在我的应用中显示一个艺术家列表,用户可以通过这些列表进行搜索。但是我不确定如何将其保存在 Firestore 中?
首先,我为每个 DJ 创建了一个包含一个文档的集合“searchLists”,但这意味着要读取大量文档,因此这是不可能的。
现在我创建了一个名为“artists”的文档,其中包含一个包含所有艺术家的字段“artistsDictionary”。
| searchLists (collection)
* artists (document)
- artistsArray (array)
0: (map)
name: "Artist 0" (string)
1: (map)
name: "Artist 1" (string)
2: (map)
name: "Artist 2" (string)
然后我检索并解析数组如下:
let docRef = db.collection("searchLists").document("artists")
docRef.getDocument { (document, error) in
if let document = document, document.exists {
guard let documentData = document.data() else { return }
let artistsDictionaryArray = documentData["artistsArray"] as? [[String: Any]] ?? []
let parsedArtists = artistsDictionaryArray.compactMap {
return SimpleArtist(dictionary: $0)
}
self.artistsArray = parsedArtists
} else {
print("Document does not exist")
}
}
(SimpleArtist 是一个包含“名称”字段的结构。)
我的意思是,它有效,但我还是 Firestore 的新手,这似乎有点不对劲。是吗?还是我应该/可以这样做?
【问题讨论】:
标签: ios swift firebase google-cloud-firestore