2016-08-01 29 views
0

我試圖找回使用此代碼由用戶收藏的所有配方,但沒有數據被retrived訂貨信息 - 火力地堡

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")