@firebase/database: FIREBASE WARNING: Using an unspecified index. Your data will be downloaded and filtered on the client. Consider adding ".indexOn": "status" at /groups/test/leadPropertyInformations to your security rules for better performance.
Firebase RTD Rules
{
"rules": {
".read": "auth != null",
".write": "auth != null",
"groups": {
".indexOn": ["leadPropertyInformations/status"]
}
}
}
JSON Tree
Note: You cannot see status
property. But it is there on the 3rd arrow path.
Query using AngularFire
getActiveLeadPropertyInformations(): Observable<LeadPropertyInformationModel[]> {
return this.angularFireDatabase
.list<LeadPropertyInformationModel>(
`groups/${this.groupId}/leadPropertyInformations`,
(ref) => ref.orderByChild('status').equalTo('active')
)
.valueChanges()
.pipe(first());
}
Can you tell me what was the issue with my Rule?
CodePudding user response:
You would need more placeholders in your rule to make i work:
{
"rules": {
".read": "auth != null",
".write": "auth != null",
"groups": {
"$groupId": {
"leadPropertyInformations":{
".indexOn": ["status"]
}
}
}
}
}
CodePudding user response:
The path is not correct (at least not as it's described in the question)
Your index is
leadPropertyInformations/status
and the path is actually
leadPropertyInformations/22611/status
Note the 22611 in the path