When we think about the permissions of a user, it would be wrong to think of there being some kind of master table that says "User X has all THESE permissions". Rather, we need to re-orient our thinking to think along a different dimension. Think of a thing that you want to protect (a resource) and then we can say "This resource (Z) allows user X to perform Y".
In GCP, we also don't assign permissions but roles which are collections of permissions.
Going back to your ask, this means that we can't list all the permissions for a user because a user doesn't "have" permissions, instead a user posses roles relative to a resource.
Imagine a file on your filesytem called "A" which user X can read but not write. Now imagine a file on your filesystem called "B" which user X can write but not read. We can't correctly say that user X has both "read" and "write" permissions. While there are some files the user can read and some that the user can write it isn't true to say that the user can read and write all files.
And to reach a conclusion ... for any given set of resources you can ask that resource what users have what roles on that resource.
We have an API that can be used to determine if a user can perform a named operation against a given resource ... see: Testing permissions.