0

我使用雲功能爲我的Firebase數據庫創建RESTful API。我找到的所有教程和指南都建議使用firebase-admin來獲得對數據庫的管理訪問權限。具有有限權限的雲功能身份驗證

這是我的問題: 有沒有一種方法可以像用戶直接訪問數據庫一樣?就像從用戶那裏獲取認證令牌一樣,並將其傳遞到數據庫,以便按照用戶的相同方式進行更改。如果我嘗試對其他用戶進行更改,安全規則應該阻止我。

可能的解決方案: 使用數據庫的內置REST API訪問數據庫並使用?auth=CREDENTIAL對用戶進行身份驗證。是否有使用firebase SDK的替代方案?

回答

0

有沒有辦法像用戶直接訪問數據庫一樣?

是的,我建議你看看sample here。但它要求您的代碼解碼並驗證該用戶的JWT。最簡單的方法是使用Admin SDK。

該示例使用的JavaScript SDK從客戶端得到令牌:

firebase.auth().currentUser.getToken() 

,傳遞這個令牌服務器,然後使用管理SDK它驗證:

admin.auth().verifyIdToken(idToken) 

你然後可以創建一個second instance of the admin SDKset this UID for your database requests

admin.initializeApp({ 
    credential: admin.credential.cert(serviceAccount), 
    databaseURL: "https://databaseName.firebaseio.com", 
    databaseAuthVariableOverride: { 
    uid: "my-service-worker" 
    } 
}); 
相關問題