2016-01-23 9 views
15

私は次のようになりますFirebaseでデータベースを作成している「エラー」:私はRESTクライアントに移動して、このクエリを発行今</p> <p><a href="https://i.stack.imgur.com/q2gbz.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/q2gbz.png" alt="database structure"></a></p> <p>:「インデックスが定義されていない、追加」」.indexOnは

https://movielens3.firebaseio.com/movieLens/users.json?orderBy="age"&startAt=25&print=pretty 

それは私にエラーを与える:

"error": "Index not defined, add ".indexOn": "age", for path "/movieLens/users", to the rules" 

だから私は、ルールのセクションに移動して、このRULを定義しますe:

{ 
    "rules": { 
     "users" : { 
      ".indexOn": ["age", "gender", "occupation", "zipCode"] 
     }, 
     ".read": true, 
     ".write": true 
    } 
} 

でも同じエラーが表示されます。

答えて

14

/usersのインデックスを定義しています。子ノードusersはツリーのルートの直下にないので、それらのインデックスは空になります。それはインデックスが定義されなければならないところですので、

あなたは、/movieLens/usersを照会している:コメント欄での問題のため

{ 
    "rules": { 
     "movieLens": { 
      "users" : { 
       ".indexOn": ["age", "gender", "occupation", "zipCode"] 
      }, 
      ".read": true, 
      ".write": true 
     } 
    } 
} 

更新:

あなたは文字列としてユーザの年齢を格納しています、それらを数としてフィルタリングすることはできません。解決策は、データを修正して数値として保存することです。

しかし、その間に、このクエリはやや作品

https://movielens3.firebaseio.com/movieLens/users.json?orderBy="age"&equalTo="35" 

JavaScriptで:

ref 
    .orderByChild('age') 
    .startAt('35') 
    .limitToFirst(3) 
    .once('value', function(s) { 
    console.log(JSON.stringify(s.val(), null, ' ')); 
    }, function(error) { 
    if(error) console.error(error); 
    }) 

"やや" それは、語彙ソートではなく、数値1を実行していることであること。実際のソリューションのデータを修正します。

また、Firebaseのベストプラクティスは、データをアレイとして保存することによって無視されます。これは既にREST APIで私にとって問題を引き起こしていたので、print=prettyを落としました。 I 非常には、最初から最後までFirebase programming guide for JavaScript developersを読んで、そこのアドバイスに従うことをお勧めします。今は数時間かかるので、何時間も問題が発生することはありません。

+1

問題を解決しますが、クエリ 'https://movielens3.firebaseio.com/movieLens/users.json?orderBy=" age "&startAt = 25&print = pretty'は何もフィルタリングしません。すべてのレコードを返します –

+1

年齢を文字列として保存しています。いい考えではない。また、カスタムインデックスを作成することも真剣に検討したいと思います。このブログ記事を参照してください:https://www.firebase.com/blog/2013-04-12-denormalizing-is-normal.htmlとこの記事:https://highlyscalable.wordpress.com/2012/03/01/ nosql-data-modeling-techniques / –

関連する問題

 関連する問題