Encontrei uma forma de contornar esse aviso de depreciação e ainda assim ter acesso ao user_field:
api.getCurrentUser().findDetails().then((user) => { ... });
No entanto, findDetails sempre enviará uma requisição ao servidor. Nada é armazenado em cache. Assim que for chamado, o usuário atual terá user_fields preenchidos.
Então, você pode otimizar a lógica um pouco assim:
function withUserFields(user, callback) {
if (user.user_fields === undefined) {
user.findDetails().then(callback);
} else {
callback(user);
}
}
withUserFields(api.getCurrentUser(), (user) => {
// faça algo com user.user_fields[]
});