bijoutrouvaille / fireward

A concise and readable language for Firestore security rules, similar to Firebase Bolt.
MIT License
238 stars 4 forks source link

Allow usage of variables in v2 #21

Closed glumb closed 4 years ago

glumb commented 4 years ago

Security rules v2 allow for custom variable definitions:

function custom_is_UserReferences(data) { 
  let values = data.values();
  let size = data.size();
  return (data!=null && data is list && data.size() < 12)
          && size > 0 && is____UserReference(values[0])
          && size > 1 && is____UserReference(values[1])
          && size > 2 && is____UserReference(values[2])
          && size > 3 && is____UserReference(values[3])
          && size > 4 && is____UserReference(values[4])
          && size > 5 && is____UserReference(values[5])
          && size > 6 && is____UserReference(values[6])
          && size > 7 && is____UserReference(values[7])
          && size > 8 && is____UserReference(values[8])
          && size > 9 && is____UserReference(values[9])
          && size > 10 && is____UserReference(values[10]);
}

this fails with

function `custom_is_UserReferences` is missing a closing `}`
  on line 40, column 6
bijoutrouvaille commented 4 years ago

Thanks for the great info. The change to code should be easy enough. I'll plan on getting it done before the end of the week.

bijoutrouvaille commented 4 years ago

@glumb The custom let bindings feature should now be available in v 1.5.1. Thanks for reporting.

glumb commented 4 years ago

@bijoutrouvaille perfect, thanks for implementing! :)