如何解决如何将 Swift 字典连接到 Firestore 地图字段
我正在尝试在 firestore 地图字段中连接一个 swift 字典
//users is the collection and watched is the map field in firestore that I want to update with the dictionary {stringA : stringB}
db.collection("users").document(self.userID).updateData(["watched": {stringA:stringB}])
我想补充一点,将字典添加到数组字段时它对我有用。但是,它确实存在重复和易于引用的问题。由于 Firestore 有一个地图类型字段,我想知道是否有任何方法可以将 swift 字典直接连接为键值对,如第二张图片所示(手动完成)。
解决方法
如果您只有 1 个要存储的值,Firestore 中的数组就很棒。由于您要存储字典,因此我建议创建一个子集合。创建子集合的逻辑与创建常规集合(即用户)完全相同,只是路径将从父集合的文档中开始。
在用户的文档中创建一个名为“watched”的子集合,在子集合中您可以添加文档并将 documentID 设置为等于 stringA。这还允许您查询观看的集合(例如,如果您需要查看用户是否观看了特定的 stringA)。
收集路径类似于:
db.collection("users").document(self.userID).collection("watched").document(stringA)
在新文档中,您将存储 stringB 和其他数据,例如:
let data: [String:Any] = [
document_id : stringA,// optional
watch_time : stringB,]
旁注:Firestore 确实支持直接存储数字。根据您发布的图像,看起来 stringB 是一个数字,并且您将其作为字符串存储在数据库中。我会尽量避免切换类型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。