在 Swift 4 中使用 where Query 从 Firebase 中检索数据
Posted
技术标签:
【中文标题】在 Swift 4 中使用 where Query 从 Firebase 中检索数据【英文标题】:Retrieve Data from Firebase using where Query in Swift 4 【发布时间】:2018-03-20 08:12:46 【问题描述】:let ref = Database.database().reference(withPath: "user")
ref.observeSingleEvent(of: .value, with: snapshot in
if !snapshot.exists() return
print(snapshot) // Its print all values including Snap (User)
print(snapshot.value!)
let username = snapshot.childSnapshot(forPath: "full_name").value
print(username!)
)
【问题讨论】:
我想显示 videoid = "12345" 的视频 ID。如何在swift 4中做到这一点? 【参考方案1】:您需要添加一个查询:
ref.queryOrdered(byChild: "videoid").queryEqual(toValue: "12345").observeSingleEvent(of: .value, with: snapshot in
更多信息在这里:
https://firebase.google.com/docs/reference/swift/firebasedatabase/api/reference/Classes/DatabaseQuery#queryorderedbychild
【讨论】:
感谢您的回复。但它显示| [Firebase/Database][I-RDB034028] 使用未指定的索引。您的数据将在客户端下载和过滤。考虑将 /Messages 中的 ".indexOn": "VideoID" 添加到您的安全规则中以获得更好的性能 这是一个警告不是错误,它与firebase数据库规则有关 在这里检查:firebase.google.com/docs/database/security/indexing-data 好的。明白了。但问题是在我的数据库中总共有 10 个 videoID 值。在 5 个值中 r“12345”,其余 5 个是“67890”。我想显示“12345”的视频ID。并且使用这个查询它只显示 1。请帮助。 @AbhishekChatterjee 确保所有 5 个都是videoID
,大写“I”和“D”以上是关于在 Swift 4 中使用 where Query 从 Firebase 中检索数据的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Eloquent Query 使用 WHERE 和 OR AND OR?
Laravel Eloquent Query 使用 WHERE 和 OR AND OR?