getUserClaims<T extends Enum> method
Pass the UserClaims type to get the claims for that user
Implementation
@override
Future<Map<T, bool>> getUserClaims<T extends Enum>({
required List<T> enumValues,
bool forceRefresh = false,
}) async {
// Handle if they are not logged in
if (_fbAuth.currentUser == null) {
logd('AuthService: Current user is null! (getUserClaims()');
return <T, bool>{};
}
var userClaims = <T, bool>{};
var tokenResult = await _fbAuth.currentUser!.getIdTokenResult(forceRefresh);
// For each tokenResult.claims, add it to the userClaims list if it matches an enum value
for (var entry in tokenResult.claims!.entries) {
var key = entry.key;
var value = entry.value;
for (var enumValue in enumValues) {
if (enumValue.name == key) {
userClaims[enumValue] = value as bool;
}
}
}
return userClaims;
}