Firebase。验证孩子记录的规则

问题描述:

我有一个关于firebase实时数据库的用户数据库。Firebase。验证孩子记录的规则

我的结构是:

用户 - > UID - > user_infos(在这个水平我有一个所谓的财产: 'CPF')

所以我创建了中央公积金.validate规则:

{ 
    "rules": { 
    "users": { 
     "$user_id": { 
      "$cpf": { 
       ".validate": "!data.exists()" 
      } 
     } 
    } 
    } 
} 

问题是,当我尝试保存用户,我收到一个PERMISSION_DENIED错误。

我使用的是JavaScript的火力LIB,3.4.1

,我使用的保存用户的方法是:

firebase.database().ref('users/' + uid).set(userDb); 

我的本意是,CPF属性为唯一数据库上。

谢谢。

+1

你的规则看起来不错。我可以很快看到这个失败的唯一方法是当'userDb.id'是一个空字符串时。 –

+0

嗨@FrankvanPuffelen我更新了我的问题,旧的问题并未满足我的需要。 Thx –

+0

如果你尝试'.write'而不是'.validate'并使用规则'“.write”:“!data.exists()||!newData.exists()”'“ –

我修正了它,手动验证firebase。这不是很好的解决方案,但工作。

+2

你应该发布你的解决方案,如果其他人有同样的问题,他们可以尝试你的解决方案。 –