2017-05-09 6 views
2

私は非常に些細な作業であるように思っています。Firebaseデータベースルール不特定のインデックスを使用する

クエリ:

admin.database().ref('/dispatch/') 
    .orderByChild('shipmentKey') 
    .equalTo(shipmentKey) 
    .once('value') 
    .then(

警告:

FIREBASE警告:未指定のインデックスを使用して簡単なクエリを実行するとき、私はFirebaseから次の警告を受けています。 「.indexOn」を追加することを検討してください: 『shipmentKeyを』より良いパフォーマンスのためにあなたのセキュリティルールに/派遣で

私のデータベースには、次のようになります。 enter image description here

そして、私のdatabase.rules.jsonは次のようになります。

{ 
    "rules": { 
    "dispatch": { 
     ".indexOn": "shipmentKey" 
    } 
    } 
} 

とも試してみました:私が持っている

{ 
    "rules": { 
    "dispatch": { 
     ".indexOn": ["shipmentKey"] 
    } 
    } 
} 

をこのトピックに関する他のすべてのスタックオーバーフローに関する質問を既に読んでおり、この警告をプロジェクトから取り除くことはできません。


UPDATE 2017年6月22日

私は問題を解決してきた、そしてそれは非常に簡単でした。 firebaseのデプロイでは実際にデータベースルールをデプロイしていなかったので、database.rules.jsonがアップロードされていないことが判明しました。私は単純に次のコマンドを実行しました:

firebase deploy --only database 

そして今はすべて素晴らしいです!これを指摘するのに役立つBob Snyderに感謝します。これが他の誰かを助けることを願っています!

+0

あなたのルールは大丈夫です。あなたは彼らがデータベースに有効だと確信していますか? Firebaseコンソールのルールを見ると、投稿したルールが表示されますか? –

+0

彼らはそこにボブ、なぜ、どのアイデアか分からないのですか? – Gregg

+0

私は自分のルールをFirebaseコンソールで直接編集します。あなたは[Firebase CLI](https://firebase.google.com/docs/cli/#deployment)を使用してあなたを配備していますか?あなたのルールが単純であることを考えれば、Firebaseコンソールを使用してルールを更新して、それが問題を解決するかどうかを調べることができます。私はそれができると思う。 CLIがあなたのために働いていない理由を知らないでください。使用しないでください。 –

答えて

0

複数のインデックスがある場合は、角括弧で区切ってすべてのインデックスをカンマで区切って入力する必要があります。

{ 
    "rules": { 
    "dispatch": { 
     ".indexOn": ["shipmentKey"] 
    } 
    } 
} 
+0

ありがとうブラッドリー、私もそれを試して、まだ動作しません:( – Gregg

関連する問題