在解析到Firebase的迁移过程中,在Firebase中为多个散列标签构建数据

np8igboo  于 2023-01-21  发布在  其他
关注(0)|答案(3)|浏览(110)

Firebase数据采用JSON结构。根据最佳实践,我们应该创建非规范化形式的数据。我们应该在不同节点推送相同的数据。根据他们的文档,可以在不同分支复制数据。

在Firebase中应如何构建此数据?

我正在编写一个博客应用程序,它在PARSE中,并希望迁移到Firebase。
我的每个博客都有不同的标签。这些标签是可以点击的。所以当我们点击一个特定的标签时,它会重定向到一个有相同标签的普通博客的页面。
我们如何在Firebase中概念化上面的散列标签行为?如何组织数据,以便我可以查询所有的博客的特定散列标签?
比如select * from [blogs] where tag = '#hashtag'

hgtggwj0

hgtggwj01#

试试这个

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代码,但您可以了解它跨平台应用的总体思路。

8qgya5xd

8qgya5xd2#

我想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
    }
  }
}

我希望这能有所帮助,基本上你可以用each标签查询你的标签json,each标签包含了一个blog文章的关键字,一个很好的下一步可能是,与在标签中输入true值相反,输入一个日期,这样你就可以在搜索结果中按顺序排列文章。
请把你想出的解决方案贴出来。

nlejzf6q

nlejzf6q3#

在每个blog中使用一个tags数组,类似于tags:['sports','champions','smth']那么当你查询你的博客时,用途:.where(“标签”,“数组包含”,“您单击的标签”);

相关问题