1

FirebaseのデータはJSONとして構造化されます。ベストプラクティスとして、非正規化された形式のデータを作成する必要があります。我々は異なるノードで同じデータをプッシュする必要があります。彼らの文書によると、別のブランチでデータを複製することは大丈夫です。Firebaseの移行中に複数のハッシュタグをFirebaseで構造化すると、

Firebaseでこのデータをどのように構造化する必要がありますか?

私はPARSEにあってFirebaseに移行したいブログアプリケーションを作成しています。

私のブログにはそれぞれ異なるhashTagsがあります。これらのハッシュタグはクリック可能です。したがって、特定のhashTagをクリックすると、同じハッシュタグを持つ共通のブログを持つページにリダイレクトされます。

上記のハッシュタグの動作をFirebaseでどのように概念化しますか? 特定のハッシュタグについてすべてのブログにクエリを送信できるようにデータを構造化するにはどうすればいいですか? select * from [blogs] where tag = '#hashtag'

答えて

1

よう

この

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スウィフトコードですが、それはプラットフォーム間で適用されるとして、あなたは一般的なアイデアを得ることができます。

0

私は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にクエリを行います。良い次のステップは、おそらくタグに値を当てるのではなく、検索結果に投稿を順番に並べ替えることができるように日付を入れることです。

あなたが解決策として思いついたものを投稿してください。

+0

あなたが上に示したことは正しいです。しかし、tag1のすべてのブログを取得しようとしているとしましょう。次に、私はまずtag1に関連するすべてのブログを見つけます。また、各ブログについては、詳細を取得するためにもう1つのWebサービスを呼び出します。私たちはfirebaseを4回呼び出しているページを表示します。それは期待される行動か?現在私はあなたが示したようにしています。 –

+0

1語で「はい」と答えます。 [link](https://www.firebase.com/docs/web/guide/structuring-data.html) これは公式文書へのリンクです。このセクションでは、フラット化されたデータを結合しています。 "個々のレコードを個別に検索するのは本当にいいですか?はい......" – Marquis103

+0

パフォーマンスについて懸念がある場合は、デバイス側のキャッシュの実装を検討することもできます。 – Marquis103

関連する問題