I’ve tried it a million ways including yours. The reason it doesn’t work is because it would require that info input by one user would have to change the info input by another user. The visibility function for most components is based on the profile that is being viewed, not by the signed in user. The only exception is the email which can be set to the signed in user. Component can only be conditioned from the profile being viewed, not from the info of the signed in user.
In my example, Jim is viewing Jane’s profile. Jim’s email makes him the signed in user, but he has not completed a profile so he has no name, pic, etc… in the app. Jane has completed a profile, so she has name, pic, etc… If I want to limit Jim’s ability to see Jane’s email until he completes a profile (i.e. he inputs his name, pic, etc…), the visibility would have to pull info from his row. But it’s actually pulling info from Jane’s row. So “show if Name is not empty” is pulling from Jane, who has a complete profile, not Jim, who has not input his name because he hasn’t completed a profile. The visibility only recognizes Jane’s name because it’s her profile we’re on. I can’t find a relation, lookup, or if-then-else combo that will ignore the profile and base visibility on the signed in user.
In other words, only show component to viewers who possess a certain quality (i.e. who have a “Name”)