我正在尝试获取仅由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)
})
}
豆荚
- 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)
答案 0 :(得分:1)
此代码不执行您认为的操作:
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")