我在理解 Firebase 實時資料庫的驗證安全規則時有些困惑。我目前設定資料庫的方式如下所示:
(Database ID)
users
(Google UID)
dayRatings
2022-01-01: 2
2022-01-02: 4
2022-01-03: 5
settings
(Not implemented yet)
(Google UID)
dayRatings
2022-01-01: 3
2022-01-02: 1
2022-01-03: 1
settings
(Not implemented yet)
用戶可以添加自己的評分,但評分未經過驗證。我想驗證評級的鍵(例如2022-01-01)和值,但我對如何對它們執行驗證感到困惑,因為鍵可能會根據用戶的選擇而有所不同。
現在,我的安全規則只是確保用戶只能讀取和寫入他們自己的檔案,但不會以任何方式驗證資料。
{
"rules": {
"users": {
"$uid": {
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid"
}
}
}
}
如果密鑰不固定,我該如何執行驗證?我是否正確地構建了我的資料庫?
任何幫助將不勝感激。
uj5u.com熱心網友回復:
您可以為日期添加另一個通配符捕獲變數:
{
"rules": {
"users": {
"$uid": {
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid"
"$date": { // ?? capture any child node
".validate": "..." // ?? validate its value
}
}
}
}
}
$date這里的in 與 相同$uid,只是在 JSON 中具有不同的變數名稱和不同的級別。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/409503.html
標籤:
