Search code examples
google-cloud-firestorefirebase-security

firebase security rules: optional field that could be a null or a string?


How to make firebase accept a key that could be a null or a string ? and yet the field is optional, since in security rules you canot ceck if (is) is null ?

function dataCheckCreate(requestData) {
  return (
    // requestData.count required 
    requestData.count is number &&
    // requestData.src required 
    requestData.src is string &&
    // requestData.date optional !!
    // if available it could be a null or a string 
    (requestData.date == null || requestData.date is string)
  );
}

Solution

  • The last rule will be true when date is either equal to null or is a string. If you want that field to be optional then try:

    function dataCheckCreate(requestData) {
      return (
        requestData.count is number &&
        requestData.src is string &&
    
        // [date not present in data keys]       [date is string]
        (!('date' in requestData.keys()) || requestData.date is string)
      );
    }