Hi @a.manda,
I’ve just been through an almost identical exercise, and I also struggled. But I did eventually get it working, so will share my experience and maybe that will help.
Firstly, I found this tutorial from @Robert_Petitto extremely helpful (note: have a read of the entire thread, as I think much of it is relevant to your situation).
In my situation, I too wanted to keep all tabs/screens hidden from new users until they had met the minimum profile requirements. This is how I (eventually) achieved it:
User Profiles
sheet: I just added a single Has Profile
column as a Number type.
For the onboarding landing page, I created a new tab and linked it to my User Profiles sheet. Tab visibility for this sheet is set to Email is signed-in user
and Has Profile
is empty
For the layout on that tab, I chose the Details layout and deleted all the default components. In the Features section, I set the filter to email is signed-in user
. (NB. This is important, otherwise you end up with each new user editing the first row in your sheet. I found this out the hard way )
I then added appropriate entry components to the layout: text entry for name, image upload for profile pic, etc. I didn’t do anything special with those components in terms of visibility/filtering/etc.
The final component was a “Done” button. This was a button component with an increment action of +1 on the Has Profile
column in my User Profile sheet. The other thing I did with this button was to set the visibility so that it only appears when the User Name was not empty, like so:
In my case, I kept it simple and made only the name mandatory. If you wanted to make extra attributes mandatory, you could simply chain more conditions, ie. Name is not empty AND Location is not empty
Here is what my onboarding screen looks like:
Note that the ‘All Done!’ button is initially hidden, but as soon as the user starts entering their name the button visibility condition kicks in and the button appears. The user can then either fill in the rest of the info, or just skip straight to the button. Once the button is tapped, Has Profile
is incremented and the screen disappears.
For all the tabs that I initially wanted hidden, I set the visibility to Email is signed-in user
and Has Profile
is not empty.
For testing: I also found what seemed like weird and inconsistent behaviour when trying to test this from the data editor (after reading this thread I think I understand why now), so I’d recommend publishing your app and get an extra email address to use as a test account.
Hope this helps,
Darren