我想詢問 Firebase Admin SDK,以防在兩個相關應用程式之間使用自定義宣告:服務器應用程式和客戶端應用程式。他們每個人都有不同的特點。它們都放置在同一個 Firebase 專案中,但使用不同的集合。這兩個應用程式都使用具有不同 Node.js 檔案的 Cloud Function。我將所有 Cloud Function 代碼放在 Visual Studio Code 的不同專案中。
例如,在 Server App 的代碼中:
claims = {
serverFeatureA: true,
serverFeatureB: false,
};
admin.auth().setCustomUserClaims(uid, claims);
這是針對客戶端應用程式的:
claims = {
clientFeatureA: true,
clientFeatureB: false,
};
admin.auth().setCustomUserClaims(uid, claims);
我擔心的是,如果同一個 Gmail 帳戶同時使用這兩個應用程式并且 Cloud Function 將其宣告分配給不同的功能?如果用戶先訂閱客戶端,然后訂閱服務器,這會覆寫客戶端應用程式中撰寫的舊宣告并且僅存在于服務器應用程式中嗎?任何幫助都會很棒。謝謝。
uj5u.com熱心網友回復:
由于您只有一個Firebase 專案(這意味著在此 Firebase 專案的身份驗證服務中宣告的一組用戶),因此當您的一個 Cloud Functions 更新分配給該專案用戶的自定義宣告時,它會覆寫之前設定的自定義宣告此用戶(獨立于先前設定宣告的云功能)。
您可以做些什么來避免這種情況,即在您的每個 Cloud Functions 中檢查將要更新的用戶是否不持有其他組態檔的宣告。換句話說,在將服務器應用程式宣告分配給特定用戶之前,您檢查該用戶是否沒有客戶端應用程式宣告,反之亦然。
執行此操作的代碼取決于您的 Cloud Function 觸發器型別和代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/496540.html