2017-06-27 3 views
0

私は、Firebaseリアルタイムデータベースに以下のデータ構造を持っています。Firebaseのすべての子キーに ".indexOn"を設定するにはどうしたらいいですか?

{ 
    groups: { 
     $groupid: { 
     $userid: Boolean 
     } 
    } 
} 
ここ

#groupid$userid異なります。
ID「のUser0」のユーザがグループ「GROUP0」であり、それはユーザーが削除されると、それはuser0: falseなり

{ 
    groups: { 
    ... 
    group0: { 
     user0: true 
    } 
    ... 
    } 
} 

あろう。 私は、特定のユーザーとグループを照会、Firebase SDKは警告を示しています。ユーザーIDが変化すると FIREBASE WARNING: Using an unspecified index. Consider adding ".indexOn": "user0" at /groups to your security rules for better performance

を、私はすべてのユーザーIDが、上のインデックス付けされるべきだと思います。
関連するセキュリティルールを作成するにはどうすればよいですか?

+2

ワイルドカードインデックスを定義する方法はありません。通常は、データ構造を逆転したことを意味します。あなたのものは私がここで答えた分類問題に似ています:http://stackoverflow.com/questions/40656589/firebase-query-if-child-of-child-contains-a-value –

答えて

0

特定のユーザーでグループにクエリを実行する場合は、ユーザーがグループリストを更新するようにしてください。

{ 
    user-groups: { 
     user0: { 
      group0: true, 
      group1: true 
     } 
    } 
} 

したがって、グループにはメンバーがあり、ユーザーにはグループが所属しています。

関連する問題