Use same Sheet datasource in two different apps?

I’ve got a product that I’d like to offer different experiences to two distinct user groups: game players, and game administrators. I’m trying Glide for the full No Code experience; I previously built this product over a decade ago on Google App Engine in Python. Start fresh!

The game players will get the App. It will require Public Email sign-in and will of course read and write game-related data back to its source Sheet.

The game admins will get the Page. It too requires sign-in and will be list-restricted to just a handful of accounts. It will read and write data as well to the same Sheet, since it’s the same environment.

Example player action: predict which sports team is going to win an upcoming real-world game.

Example admin action: Create that game by matching up two teams, setting a date/time and a couple other scoring parameters.

I think it makes no sense to have the same app for players and admins. They have completely different permissions and goals and ways of interacting with data. But it looks like relations are app-specific, so if I create a bunch of relations in Admin, the Player app isn’t going to have those unless I duplicate them? And I have a bad feeling my data integrity is cruising for a bruising if I try to stick with this architecture.

Thus, my question: is it safe and recommended to use the same Sheet in two different pages/apps, or will things like Row IDs and Relations be hopelessly confused?

Yes, you can create multiple apps that point to the same data. It should work fine.

True, if you create a new app that uses an existing sheet, then you will have to recreate any computed columns. But, as a shortcut, you can duplicate your original app, while having it point to the same sheet, and all of your computed columns should be there. Then you can restructure the duplicated app how you want. All data will remain shared between apps.

1 Like

Thanks for the super-quick reply. Glad this might work! I take it Row IDs, even though they’re written to the source Sheet, aren’t going to cause problems in the separate apps.

Problem, though - I want an App for gamers, a Page for admins. I can’t duplicate and change Project Type, can I?

No, you shouldn’t have a problem with RowID’s. They are only created when a new row is added.

To create a page from an app, this option should work for you.

image

1 Like

why can’t you use the same app? just control access to tabs by visibility.

Gotcha - I was actually going the other way, from the Admin Page to then create the Player App, and I didn’t see that option, of course.

I figured it made more sense to set up the whole schema via the Admin Page, then build the Player App experience.

@Uzo - I could use tab visibility, but i think separate projects make sense for two reasons: 1) specific login control for Admin guaranteed by Private Sign In, and 2) UX clutter. Admins may play the Game too. I think most of the time they don’t want a bunch of extra Admin features poking through. This is purely a design decision which Glide seems to support.

if the admin is the problem, add another admin column for each game, this way you have separate roles for each game

There currently isn’t an option to create an app from the page data the same way that you can create a page from the app data. Of course that doesn’t stop you from still creating an app from the same sheet/tables. You’ll just have to recreate the computed columns.

1 Like