【发布时间】:2016-05-13 15:14:54
【问题描述】:
使用 swift 和 firebase 我有一个这样的数据列表
{
"posts" : {
"-KHbULJcKqt9bSpxNO9k" : {
"author" : "Michele",
"postText" : "tags as arrays?",
"tag" : [ "HELLO", "WHAT'S UP?", "TEST" ]
}
还有更多帖子。我想按标签搜索,如果帖子包含搜索词作为标签,则返回整个帖子。我已经能够使用queryEqualToValue: 对字符串执行此操作,但无法为数组解决它。感谢您在正确方向上的任何一点。
这就是我的保存功能的样子
func createNewPost(post: Dictionary<String, AnyObject>, tags: [String]) {
let firebaseNewPost = POST_REF.childByAutoId()
let firebaseTag = Firebase(url: "\(POST_REF)/\(firebaseNewPost.key)/tag")
print(firebaseTag)
firebaseNewPost.setValue(post)
for tag in tags {
let tagID = firebaseTag.childByAutoId()
tagID.setValue(tag)
}
}
现在我需要帮助来搜索数据并根据用户搜索的内容检索特定帖子。这是我在它只是一个标签并且只是一个字符串时使用的。
func loadTaggedShit(searchTerm: String) {
DataService.dataService.POST_REF.queryOrderedByChild("tag").queryEqualToValue(seachTerm).observeEventType(.ChildAdded, withBlock: { snapshot in
self.posts = []
if let snapshots = snapshot.children.allObjects as? [FDataSnapshot] {
for snap in snapshots {
if let postDictionary = snap.value as? Dictionary<String, AnyObject> {
let key = snap.key
let post = Post(key: key, dictionary: postDictionary)
self.posts.insert(post, atIndex: 0)
}
}
}
self.tableView.reloadData()
})
}
现在的数据也是这样的
"posts":{
"-KHj_bDJmZJut7knKoUX" : {
"author" : "Michele",
"postText" : "what's up",
"tag" : {
"-KHj_bDJmZJut7knKoUY" : "HEY"
}
}
}
【问题讨论】:
标签: arrays swift firebase firebase-realtime-database