所以我已經設法根據他們所屬的組使用下面的 Node.js 代碼為每個用戶分配一個自定義聲明:exports.giveToken = functions.database.ref("userSearch/{Id}").onCreate((snapshot,context)=>{ if(snapshot.child("cId").exists()){ const group = snapshot.child("cId").val(); const userId = context.params.Id; return admin.auth().setCustomUserClaims(userId, {[group]: true}); }else{ return null; }})如您所見,companyId / customClaim 名稱是動態設置的,即可以是 1234 也可以是 123456在 Firebase 的數據庫安全規則中,這是我的規則:{ "rules": { "c" :{ "$comp_id" : { "$uid": { ".read" :"auth.uid == $uid && auth.token.$comp_id === true", ".write": "auth.uid == $uid" } } }}}問題實際上是雙重的,這種類型的訪問控制是否可以通過 Firebase Custom Claims 實現?如果可以,我該如何實現它?我在這里的最終目標是用戶加入>根據他們的組分配自定義聲明>只能訪問來自該組(或節點)的數據。提前謝謝了。
Firebase 數據庫安全規則 - 根據動態 CustomClaim 名稱設置訪問權限
開滿天機
2023-06-15 09:53:37