2017-04-09 4 views
0

Ich habe eine Weile mit Feuerbasis arbeiten, und ich liebe es, aber heute arbeite ich an Sicherheitsregeln und ich bin immer einen Fehler mit Simulator, sieht mein Code wie folgt:Regeln Firebase Länge Validierungsfehler

{ 
    "rules": { 

    "users":{ 
     "$uid":{ 

     ".read": "auth.uid != null", 
     ".write": "auth.uid != null", 

     ".validate":"newData.child('profile').child('userName').isString()&& newData.val().length < 15" 
     } 
    } 
    } 
} 

Der Fehler erscheint nur, wenn ich die Längenvalidierung hinzufügen. Wenn ich tun:

{ 
    "rules": { 

    "users":{ 
     "$uid":{ 

     ".read": "auth.uid != null", 
     ".write": "auth.uid != null", 

     ".validate":"newData.child('profile').child('userName').isString()" 
     } 
    } 
    } 
} 

funktioniert gut, eine Idee, warum dies geschieht, habe ich die Dokumentation auf readed: https://firebase.google.com/docs/database/security/securing-data und viele andere Beispiele, und ich kann einfach nicht den Fehler finden. Vielen Dank im Rat und in der glücklichen Codierung.

Antwort

0

Ok ich die richtige Syntax gelöst haben:

{ 
    "rules": { 

    "users":{ 
     "$uid":{ 

     ".read": "auth.uid != null", 
     ".write": "auth.uid != null", 

     ".validate":"newData.child('profile').child('userName').isString()&& newData.val().length < 15" 
     } 
    } 
    } 
} 
1

Sie können die Validierung wie in diesem Beispiel zu Ihrem Feld hinzufügen.

{ 
    "rules": { 
    "users": { 
     "$user_id": { 
     // grants write access to the owner of this user account 
     // whose uid must exactly match the key ($user_id) 
     ".write": "$user_id === auth.uid", 
     ".read" : "$user_id === auth.uid", 
     "familyName" : ".validate": "newData.isString() && newData.val().length > 1 && newData.val().length < 100", 
     "givenName" : ".validate": "newData.isString() && newData.val().length > 1 && newData.val().length < 100", 
     "age" : ".validate": "newData.isNumber() && newData.val() > 13 && newData.val() < 110", 
     "email": { 
      // an email is only allowed in the profile if it matches 
      // the auth token's email account (for Google or password auth) 
      ".validate": "newData.val() === auth.email" 
     } 
     } 
    } 
    } 
}