Peter
Peter

Reputation: 10970

How to define an index using the new bolt compiler for Firebase

I'm using the new bolt compiler (introduced here: https://www.firebase.com/blog/2015-11-09-introducing-the-bolt-compiler.html)

I have the need to define an index on the owner field of my type Event:

type Event {
    description : String | Null,
    name : String,
    color : Number,
    owner : String,
    shared : Boolean
    index() = "owner";
}

When I try to compile this code, I get the following output:

bolt: Generating rules.json...
bolt:1:1: Unsupported method name in type statement: 'index' (allowed: 'validate', 'read', 'write')

Please help: how should I define indexes? I guess I need to define them within a path statement?

The documentation for the bolt compiler does not contain much on defining indexes yet: https://github.com/firebase/bolt/blob/master/docs/language.md

Upvotes: 5

Views: 787

Answers (2)

mckoss
mckoss

Reputation: 7034

Combining the type info with the index:

path /events is Event[] {
  index() = "owner";
}

Upvotes: 1

Peter
Peter

Reputation: 10970

Just found the answer:

path /users/$uid/events {
    index() = "owner";
}

Upvotes: 9

Related Questions