Sharing app with private tables

I’ve made an app where every table lives in its own worksheet, and all have sharing turned off. There is no data in any of the tables. Authenitcation Provider is set to Any Provider. I’ve shared it with two people to test. One has an Android phone and uses Google and there is no issue. The other has an Iphone and uses Dropbox and the app will not load. The first error message says" The app did not load successfully. Net work Error please check connectivity. However the user can then go to shared apps and see the app listed but on trying to access it gets a further error message: Unable to fetch app definition referring to one of the spreadsheets and sheet within it. On checking the app definition, all seems in order so I can so no reason for the error. Does anyone have any suggestions? The app is in Deployed status on a Premium subscription.
Thanks in advance
Marlene

I could be wrong but it appears that private tables cannot be from different sources - in other words, all your users must have Google accounts.

That would certainly account for it @Bellave_Jayaram. Is that in the documentation anywhere?And how does one then market the app if restricting the cloud storage to Google?

I don’t think it is documented that it doesn’t work like how you are trying to do. Many developers in this community have worked around these issues by using slices and security filters with Excel or Gsheets or SQL data sources. You can isolate your clients’ data but they will all be in common tables and your clients should be comfortable with that.

@Marlene_Williamson Is it possible that your option Access mode is set as “As app user”?

Yes is is - I will change them all and check with the Iphone/Dropbox user. Thanks @Aleksi. Do all my users need to use Google accounts becuase I did when I created the app?

I’m not 100% sure about this but I believe it should work.

Will post when I hear back from the user

User is getting the same error. I’ve checked that particular spreadsheet and sheet and can’t see an issue. image

Let me check this from our developer team. I will try to get an answer for this as soon as possible.

Thanks so much.

Is there a particular reason you’re using a table Access mode of as app user? It’s generally preferable to use as app creator, as there are a variety of complexities involved with as app user (as you’re discovering?).

@Steve it wasn’t a conscious decision - as soon as I turned Sharing off for each table, it went to Use as app User. I understood that this is the case because User Sign on is required for Private Tables. Yesterday I changed all my tables to be app creator and today they are all back to app user because they are Private.

Hi Marlene,

I recommend thinking carefully before using Private tables. They have their place, but they have limitations.

  1. The first limitation is that you can never update the schema for the Private table. When a new user first uses your app, the system creates a copy of the Private table for that user. There is currently no way for you to update the schema for the Private table thereafter, because we don’t have a way to go back to update the existing copies of the Private table. Only use a Private table if you are confident that the Private table schema will remain constant for all time.
  2. The second limitation is that Private tables can make your app hard to support. If your user puts bad data in their Private table, it can be hard for you to see that data to diagnose or fix the problem. You will need to be granted access to their copy of the Private table.

For the vast majority of users, it is better to use a single shared table with a Security Filter rather than a Private table.

3 Likes

Thanks @Phil for your comments - I guess I am wary of hosting other folks data in my cloud storage. At the moment the app is a personal one for my daughter and some of her friends - each of whom will have their own. I gather however that there might be a wider market in the future, and if I think seriously about that then I will do as you suggest.
In the short term, however, I am just wanting a couple of users to test, and the one using Dropbox is unable to run the app at all.
Thank you again

Hello @Steve

When using Private Table, is there any impact on the saving and syncing speed of the app? Based on my understanding about the Private Table, it will create a copy of that specific table and stored this copy in each user’s cloud storage provider.

Thus when multiple users are using the app with private table, the app server will access each users’ private table rather than accessing a single cloud storage of the app creator when not using the private table.