2016-10-01 99 views
0

我有一個關於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()」'「 –

回答

0

我修正了它,手動驗證firebase。這不是很好的解決方案,但工作。

+2

你應該發佈你的解決方案,如果其他人有同樣的問題,他們可以嘗試你的解決方案。 –