title: Unable to validate child nodes with Firebase security
body: <p>I'm clearly missing some fundamental aspect of firebase security, because this shouldn't work.  I would expect it to throw a validation error when attempting to push invalid data.  (Inserting a new node into /nodes)</p>
  
  <p>Rules:</p>
  
  <pre><code>{
    "rules": {
      "nodes": {
        ".read": "auth !== null &amp;&amp; auth.provider === 'google'",
        ".write": "auth !== null &amp;&amp; auth.provider === 'google'",
        "user": {
          ".validate": "newData.val() === auth.uid"
        },
        "ts": {
          ".validate": "newData.val() &lt;= now &amp;&amp; newData.val() &gt;= (now-1000*60*60*24)"
        }
      }
    }
  }
  </code></pre>
  
  <p>Then in my console I try to intentionally insert invalid data:</p>
  
  <pre><code>ref.child('nodes').push({
    'user': 'abc',
    'ts': 123
  }, function(err){console.log(err);});
  </code></pre>
  
  <p>Which logs null, and when I check my database it was inserted, no validation errors!  I know I've got something fundamentally wrong, because a validation rule right after the .read and .write rows of the following disallows any writing. <code>.validate": "newData.hasChildren(['user', 'ts'])",</code></p>
  
  <pre><code>{
    "nodes" : {
      "-KAgH0BLneWfGu8NymBo" : {
        "ts" : 123,
        "user" : "abc"
      }
    }
  }
  </code></pre>