swift - Firestore 对 Order By 的查询无效?

标签 swift firebase google-cloud-firestore

我正在尝试查询一组帖子。每个帖子都有一个观看者部分,如果观看者部分包含用户,则查询应返回该值。但是,当我运行查询时:

 let postsReference = Firestore.firestore().collection("posts")
    let watchingQuery = postsReference.order(by: "watchedBy/\(UID!)").start(at: [""])

    watchingQuery.addSnapshotListener { querySnapshot, error in
        guard let snapshot = querySnapshot else {
            print("Error fetching snapshots: \(error!)")
            return
        }
        snapshot.documentChanges.forEach { diff in

            if (diff.type == .added) {

            }
            if (diff.type == .modified) {

            }
            if (diff.type == .removed) {

            }
        }

我收到错误 Invalid field path (watchedBy/BmVoasdfa34fdtiucWSb8XPPM42)。路径不得包含“~”、“*”、“/”、“[”或“]”。等效的 firebase 查询工作正常:

 let watchedByQuery = postReference.queryOrdered(byChild: "/watchedBy/" + UID!).queryStarting(atValue: "")

我尝试将代码更改为 let watchingQuery = postsReference.order(by: "watchedBy.\(UID!)").start(at: [""])。此查询有效,但 FireStore 没有返回任何内容。

编辑:

尝试过:

  let postsReference = Firestore.firestore().collection("posts")
    let watchingQuery = postsReference.whereField("watchedBy."+(UID!), isGreaterThan: "")

但仍然返回空。

最佳答案

结果我的发布方法仍然与进行乘法更新的 firebase 方法相同。因此,发布机制发布到错误的路径。

关于swift - Firestore 对 Order By 的查询无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51218345/

相关文章:

ios - 特定 URLField 的正则表达式

ios - 使用 Storyboard/ Action

firebase - FIrestore 文档 onUpdate : trigger only for specific fields

javascript - 如何使用 Firebase (JavaScript) 将键设置为变量的值

android - 将 RecyclerView 与 FirestoreRecyclerAdapter 一起使用时如何设置滚动位置?

firebase - 在 Firestore 中忽略 Nil 值的最佳实践

android - 云 Firestore : retrieving cached data via direct get?

swift - 从另一个类访问 DispatchGroup

c# - OrderByChild 不会订购,Firebase 实时数据库

swift - 如何覆盖 Apple Watch 后退按钮以弹出到根 Controller