所以我已經(jīng)設(shè)法根據(jù)他們所屬的組使用下面的 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 名稱是動態(tài)設(shè)置的,即可以是 1234 也可以是 123456在 Firebase 的數(shù)據(jù)庫安全規(guī)則中,這是我的規(guī)則:{ "rules": { "c" :{ "$comp_id" : { "$uid": { ".read" :"auth.uid == $uid && auth.token.$comp_id === true", ".write": "auth.uid == $uid" } } }}}問題實(shí)際上是雙重的,這種類型的訪問控制是否可以通過 Firebase Custom Claims 實(shí)現(xiàn)?如果可以,我該如何實(shí)現(xiàn)它?我在這里的最終目標(biāo)是用戶加入>根據(jù)他們的組分配自定義聲明>只能訪問來自該組(或節(jié)點(diǎn))的數(shù)據(jù)。提前謝謝了。
Firebase 數(shù)據(jù)庫安全規(guī)則 - 根據(jù)動態(tài) CustomClaim 名稱設(shè)置訪問權(quán)限
開滿天機(jī)
2023-06-15 09:53:37