swift - firebase queryOrdered byChild 的错误快照

标签 swift firebase firebase-realtime-database

我正在尝试获取仅由 adminUserUID 保存的媒体。 问题是返回的数据不是 adminUserUID 发布的数据。
我在我的代码中没有看到任何错误,但我不明白为什么我得到了错误的数据。

我的数据结构是这样的

media
 -L_2xS9LlY5hfXDErbde  //<- childByAutoID
     mediaUID: "-L_2xS9LlY5hfXDErbde"
     type: "video"
     userUID:  "Y9tm718aXrWK78i7mkOLNF57X2j1"

代码:

 var adminUserUID = "uek3xKdQdogHAYxJhDrMMoSj82x1"


 let ref = Database.database().reference()

     ref.child("media").queryOrdered(byChild: adminUserUID).queryLimited(toLast: 4)     

  class func observeChildAddedPostsOf(query: DatabaseQuery, _ completion: @escaping (Media) -> Void) {
    query.observe(.childAdded, with: { snapshot in
        guard snapshot.exists() else {print("snapshot on line \(#line) is nil")
            return
        }
        let media = Media(dictionary: snapshot.value as! [String : Any])
        completion(media)
    })
}

pod

 - Firebase (5.20.2):
    - Firebase/Core (= 5.20.2)
  - Firebase/Auth (5.20.2):
    - Firebase/CoreOnly
    - FirebaseAuth (= 5.4.2)
  - Firebase/Core (5.20.2):
    - Firebase/CoreOnly
    - FirebaseAnalytics (= 5.8.1)
  - Firebase/CoreOnly (5.20.2):
    - FirebaseCore (= 5.4.1)
  - Firebase/Database (5.20.2):
    - Firebase/CoreOnly
    - FirebaseDatabase (= 5.1.1)
  - Firebase/DynamicLinks (5.20.2):
    - Firebase/CoreOnly
    - FirebaseDynamicLinks (= 3.4.3)
  - Firebase/Messaging (5.20.2):
    - Firebase/CoreOnly
    - FirebaseMessaging (= 3.5.0)
  - Firebase/Storage (5.20.2):
    - Firebase/CoreOnly
    - FirebaseStorage (= 3.1.1)
  - FirebaseAnalytics (5.8.1):
    - FirebaseCore (~> 5.4)

最佳答案

这段代码并没有像你想的那样:

ref.child("media").queryOrdered(byChild: adminUserUID)

此代码获取 media 节点的所有子节点,并根据它们的 adminUserUID 属性的值对它们进行排序。在您显示的 JSON 中,没有子节点具有名为 "uek3xKdQdogHAYxJhDrMMoSj82x1" 的属性。

如果您的目标是让所有子节点按其 userUID 属性的值排序:

ref.child("media").queryOrdered(byChild: "userUID")

如果您的目标是获取其 userUID 属性值为 "uek3xKdQdogHAYxJhDrMMoSj82x1" 的所有子节点:

ref.child("media").queryOrdered(byChild: "userUID").queryValue(equalTo: "uek3xKdQdogHAYxJhDrMMoSj82x1")

关于swift - firebase queryOrdered byChild 的错误快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56417040/

相关文章:

ios - 在 swift 2.3 中访问类名

javascript - Firebase - 网络。无法显示登录用户的图片

java - 将函数输出保存到 Firebase 和 Android 的变量

javascript - 将 Firebase 值插入下拉列表

android - 为 Firebase 设计数据结构

java - 循环通过 firebase 时为空指针

ios - 如何处理 Swift 中 Firebase 数据库中的 'Assertion Failure' Collectionview 崩溃?

swift - 如何在没有初始 View Controller 的情况下启用选项卡栏过渡动画

swift - 如何使用 Swift 移位位?

ios - 将 UITableViewCell 的高度调整为 UITextView 的高度