如何以编程方式将查询添加到 Firestore 调用

Posted

技术标签:

【中文标题】如何以编程方式将查询添加到 Firestore 调用【英文标题】:How to programmatically add queries to a firestore call 【发布时间】:2022-01-07 14:53:25 【问题描述】:

我提供了一个键值对字典,我希望将其用作 firestore 查询中的一组 whereFields。鉴于 whereFields 如何添加到文档的语法,我看不出这是怎么可能的。任何想法将不胜感激。

例如,我想做这样的事情......

   var queries = ["key1": 0, "key2": 1]
   let db = Firestore.firestore()
   var ref = db. collection("myDocument")
   for (key, value) in queries 
      ref = ref.whereField(key, isEqualTo: value)
   
   let snapshot = try? await ref.getDocuments()

但这并不能编译说 ref 是一个集合,但右侧是一个 CollectionReference。

【问题讨论】:

【参考方案1】:

您需要将初始 CollectionReference 转换为其超类 Query 并使用它来构建最终查询。

var ref: Query = db.collection("myDocument")

CollectionReference 只是一个没有过滤器的查询。

【讨论】:

太棒了,我会试试的。非常感谢! 不幸的是,使用此解决方案返回的文档无法使用document.data(as: Type.self) sigh 解码。有什么解决方法吗? 如果您有新问题,您应该单独发布,并附上未按预期方式工作的特定代码。 是的,我在这里做过:***.com/questions/70191265/…

以上是关于如何以编程方式将查询添加到 Firestore 调用的主要内容,如果未能解决你的问题,请参考以下文章

通用链接:如何以编程方式返回?

如何以编程方式将空间添加到任务控制?

如何以编程方式将元素添加到 ConfigurationElementCollection?

如何将(以编程方式)谷歌字体添加到 ckeditor

如何以编程方式将 UIImageView 添加到 UIStackView(故事板)

如何以编程方式将 .xlam 插件(作为对象)添加到 vba?