2016-08-01 2 views
0

私はこのコードを用いてユーザがお気に入りに登録しました全てのレシピを取得しようとしているんだけど、何もデータがretrivedされていない注文データ - Firebase

recipesQuery = mDatabase.child("recipes").orderByChild("favoritedBy").equalTo(getId()); 

は、これは私の構造である:

{ 
    "-KNnrgEmF8qCpsWiIMW4" : { 
    "favoriteCount" : 4, 
    "favoritedBy" : { 
     "0ZtxMXZ8iDV4u0POxu8n6cIwCX33" : true 
    }, 
    "name" : "Recipe 1", 
    "recycleCount" : 0, 
    }, 
    "-KNvq6Ts8RYxc0-O3B2t" : { 
    "favoriteCount" : 2, 
    "favoritedBy" : { 
     "0ZtxMXZ8iDV4u0POxu8n6cIwCX33" : true 
    }, 
    "name" : "Recipe 2", 
    "recycleCount" : 0, 
    } 
} 

.equalTo()メソッドを削除した場合、すべてのデータが取得されますが、それは必要なものではありません。

私は間違っていますか?

答えて

1

現在、String、Boolean、Double以外のオブジェクトに基づいてクエリをフィルタリングする方法はありません。私が提案する何

この

{ 
    "users": { 
     "userId1" : { 
      "name" : "User1", 
      "favorites": { 
       "-KNnrgEmF8qCpsWiIMW4" : true, 
       "-KNvq6Ts8RYxc0-O3B2t" : true 
      } 
     }, 
     "userId2" : { 
      "name" : "User2", 
      "favorites": { 
       "-KNvq6Ts8RYxc0-O3B2t" : true 
      } 
     } 
    }, 
    "recipes": { 
     "-KNnrgEmF8qCpsWiIMW4" : { 
      "favoriteCount" : 4, 
      "name" : "Recipe 1", 
      "recycleCount" : 0, 
     }, 
     "-KNvq6Ts8RYxc0-O3B2t" : { 
      "favoriteCount" : 2, 
      "name" : "Recipe 2", 
      "recycleCount" : 0, 
     } 
    } 
} 

そして、それが特定のユーザーがお気に入りに登録しましたレシピを取得する方が簡単ですのようなものにしてデータベースを再構築することです。

mDatabase.child("users").child(userid).child("favorites") 
関連する問題