Структурирование данных в Firebase для нескольких хэштегов во время анализа при переносе Firebase
Данные Firebase структурированы как JSON. В соответствии с лучшей практикой мы должны создать денормализованную форму данных. Мы должны помещать одни и те же данные в разные узлы. Согласно их документации, можно дублировать данные в другой ветке.
Как мне структурировать эти данные в Firebase?
Я пишу приложение для блогов, которое было в PARSE и хочет перейти на Firebase .
Каждый мой блог имеет разные хэш-теги. Эти хэштеги кликабельны. Поэтому, когда мы нажимаем на определенный хэш-тег, он будет перенаправлен на страницу с обычными блогами с такими же хэш-тегами.
Как мы представляем концепцию поведения хеш-тегов в Firebase? Как структурировать данные, чтобы я мог запросить все блоги для определенного хэштега?
лайк select * from [blogs] where tag = '#hashtag'
2 ответа
Попробуй это
blogs
blog_01
hashtag:"#hashtag"
data: "some data"
blog_02
hashtag: "#anotherHashtag"
data: "more data"
blog_03
hashtag: "#superHashtag"
data: "another data"
и код
ref = rootRef.childByAppendingPath("blogs")
ref.queryOrderedByChild("hashtag").queryEqualToValue("#anotherHashtag")
.observeEventType(.Value, withBlock: { snapshot in
//.Value can return multiple nodes within the snapshot so iterate over them
for child in snapshot.children {
let hash = child.value.objectForKey("data") as! String
print(hash) //prints 'more data'
}
})
Изменить: Это код OS X Swift, но вы можете получить общее представление о том, как он применяется на разных платформах.
Я думаю, что Firebase хочет, чтобы вы сделали что-то похожее на это:
{
"blogs": {
"blog1": {
"name": "blogpost1",
"text": "blogpost1 text"
"tags": {
"tag1": true,
"tag2": true,
"tag3": true
}
},
"blog2": {
"name": "blogpost2",
"text": "blogpost2 text"
"tags": {
"tag1": true
}
},
"blog3": {
"name": "blogpost3",
"text": "blogpost3 text"
"tags": {
"tag1": true
}
}
}
{
"tags": {
"tag1": {
"blog1": true,
"blog2":true,
"blog3":true,
},
"tag2": {
"blog1":true
},
"tag3": {
"blog1":true
}
}
}
Надеюсь, это поможет. По сути, вы бы запросили свои теги json с каждым тегом, содержащим ключ для соответствующего сообщения в блоге. Хорошим следующим шагом будет, вероятно, вместо того, чтобы указывать в тегах значение true в качестве значения, поставить дату, чтобы вы могли последовательно упорядочить сообщение в результатах поиска.
Опубликуйте, что вы придумали в качестве решения, пожалуйста.