如何从Firestore获取userFavourites集合的favourites数组引用并判断含特定字符串
Firestore 无法正常拉取文档内
favourites 数组字段 以下是当前使用的 Firestore 数据结构:
目前已经可以正常访问对应集合和文档,但始终无法在代码中拉取到 favourites 数组字段。
现有实现代码
快照监听与数据回传逻辑
protocol UserFavouritesProtocol { func userFavouritesRetrieved(userFavourites:[UserFavourites]) } var delegateTest: UserFavouritesProtocol? func getFavourites() { // 移除已绑定的快照监听器 listener?.remove() // 获取 Firestore 数据库引用 let db = Firestore.firestore() let query: Query = db.collection("userFavourites") self.listener = query.addSnapshotListener { (snapshot, error) in // 校验错误与快照有效性 if error == nil && snapshot != nil { var userFavourites = [UserFavourites]() // 遍历快照内的文档完成模型解析 for doc in snapshot!.documents { let u = UserFavourites( favouriteMealPlans: doc["favourites"] as? [String] ) userFavourites.append(u) } // 回到主线程通过代理回传解析完成的数据 DispatchQueue.main.async { self.delegateTest?.userFavouritesRetrieved(userFavourites: userFavourites) } } } }
数据模型定义
struct UserFavourites { var favouriteMealPlans: [String]? }
核心诉求
希望掌握正确的方式访问并读取 favourites 数组字段,后续需要基于该数组判断其中是否包含特定字符串值。
内容的提问来源于stack exchange,提问作者amirbt17
相关产品推荐
相关产品推荐

