簡體   English   中英

如何從雲端訪問 firebase 自定義聲明 function

[英]How can I access firebase custom claims from a cloud function

編輯:我可以按照下面的方式進行,但我更喜歡更好的解決方案:

console.log((operatorUser.customClaims as any)['admin']);
console.log((operatorUser.customClaims as any).admin);

我正在嘗試檢查可調用雲 function 中的用戶自定義聲明。

我正在關注這里的示例: https://firebase.google.com/docs/auth/admin/custom-claims#set_and_validate_custom_user_claims_via_the_admin_sdk

嘗試訪問自定義聲明時出現以下錯誤:

“元素隱式具有“任何”類型,因為類型“admin”的表達式不能用於索引類型“Object”。屬性“admin”在類型“Object”上不存在”

 const operatorUser = await admin.auth().getUser(operatorUserDoc.id);
 console.log(operatorUser.customClaims['admin']);

謝謝。 這幫助我解決了另一個相關問題。

僅供參考,在 firebase“實時數據庫”雲 function 中訪問調用用戶聲明的另一種方法是直接來自 context.auth:

const isAdmin = (context?.auth?.token as any)?.admin;
  • 但與對 customClaims 的更新不同,token 屬性仍然需要轉換。 另外,請記住 context.auth 僅在 Firebase Realtime db 上設置,並且在 Firestore db 函數上未定義。

最近改進了customClaims的類型簽名。 如果您使用的是 SDK 的最新版本,您應該可以只執行user['key']來訪問聲明。

有關更多上下文,請參閱https://github.com/firebase/firebase-admin-node/issues/864

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM