You need to enable JavaScript to run this app. 如何从Firestore获取userFavourites集合的favourites数组引用并判断含特定字符串
优惠活动
大模型
产品
解决方案
定价
更多

如何从Firestore获取userFavourites集合的favourites数组引用并判断含特定字符串

Firestore 无法正常拉取文档内 favourites 数组字段

以下是当前使用的 Firestore 数据结构:
enter image description here
目前已经可以正常访问对应集合和文档,但始终无法在代码中拉取到 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.31 07:45:04