We have our starter project live app on the internet, but we wanted to enhance some features and add new functionality to our app, we did this by duplicating the original live app. After spending months making the product enhancements and testing thoroughly on the duplicate app, we had plan to unpublish the original live app and change the custom url to the duplicate app and then publish, basically migrating from one app to other.
Today morning when we opened the app to confirm if everything is fine and ready to publish, we noticed that we lost all of our data in the user profile sheet and other glide sheets. We had about 150 rows of user information, which is reduced to only 10 rows, similarly with the other glide sheets too.
If reloaded , all the changes are lost again. And have to start from 0. For every changes, we are at least giving some time for the app to save and start working again.
It uses row number to form a relation between the “copy of CompanyRewardForEmpl” and user profile sheet. The it uses this relation to extract email id from the user profiles glide sheet
Where does that come from?
How do you know the Row Number in the “copy of CompanyRewardForEmpl” table will match the correct Row Number in your User Profiles table?
Normally for something like this you would be matching on either UserID or Email address.
It depends. I’d need to understand the larger context.
How are records in that “copy of CompanyRewardForEmpl” sheet created?
If they are created in Glide, you should be able to include a User reference when each row is created.
If not, you might be able to use a VLOOKUP to add them in.
I don’t know. I have no idea what the data in your sheets looks like or how the sheets/tables can be related.
The records in “copy of CompanyRewardForEmpl” is populated in 2 parts,
Some of the values directly come from gsheets as a default, so that when the particular email id is registered he/she will see these default values immediately, instead of blank ones in the input fields.
like this:
Now, email id should be linked to the particular row, so that data is visible to the user, earlier we used to rely on the gheets to update the email id column, this process used to take 2-3 mins, until then the user used to see blank values, now to this sheet there is no element though which we can bring the email id to this sheet so I followed this approach.
Numbered the rows and then extracted the email ids.
Is that taking the corresponding Row from your Users sheet?
If that’s the case, that means that you are depending on the order of the users being identical in both sheets, yes? So if a row was ever deleted or inserted in either sheet, then it breaks.
I notice that you have an EmployeeID in the same sheet - couldn’t you add that same column to your Users sheet and use that to create a relation?
Yes, you are correct the Email Ids column is taking corresponding email row in the user profile sheet.
See We have 2 types of users:
Registered
UnRegistered
Glide doesn’t generate Employee Id automatically. If one subscribes to our product we give them the employee Id generated by us or the organisation they are working with. For new user who is not registered and just visited our app to test, there is no employee id generated so, it is not a good choice to go with employee id. As you can see in the below image there are many blank cells with no employee id.
I think what I would be doing is looking for a way to get the email address column populated with static values. You mentioned that earlier you were doing this in the GSheet, but it was too slow.
Have you explored options for doing it in Glide?
When are rows added to that sheet? Is it when a user registers (signs in), or at some other time after that? What is the process for adding rows to the sheet for new users?
Yes, as soon as the new user sign in, a new row gets added to the User Profile sheet, in the other sheets there are already pre added rows, after the new email id gets populated in the user profile sheet we bring that email id from the User Profile sheet to any respective sheet, we do this using single value method
Okay. The problem with your current method is it is very easily broken. As I mentioned earlier, all it would take is for a single row to be inserted or deleted in any sheet, and everything breaks.
I’m not sure if this could work for your use case, because I’m still not really understanding how the rows in your secondary sheets are added, but what you might be able to do is create a single screen onboarding for new users, then make them tap a button before they access the rest of the App. Then you could have an action attached to that button that adds a row for that user to each of your secondary sheets. At that point, you could set their email address immediately.
If you’re not sure what I mean, make a copy of the App below and study it. It demonstrates exactly what I am talking about.
I manually pre add the rows once a while, like 100-200 rows in a respective glide sheet and similarly in the gsheets too, so that when a new user sign in he/she will see the default values easily.
> FYI: No. of rows added in glide may or maynot be equal to the number of rows in gsheet.
As you can see in the above image there are some default values in the cell, if I use a button to add rows automatically it will create a void row just like this where there will be no default values.
Okay, I’m not sure what else to say. It looks like you’re doing a lot of stuff in your Google Sheets that would be better done in Glide. But untangling all that and fixing it is not something that we can do by exchanging messages and screen shots here in the Community. If you want to get this fixed properly, I’d encourage you to reach out to a Certified Expert and pay them to help you with it.
I know @Darren_Murphy it is a very big web, if glide has a feature where one unique row id is shared among all the sheets not different (the row id will be same for 1 user across all the sheets and will be unique), then it would be beneficial just like in MySQL, using this unique row id we can performs tasks like joins.
What’s the point having different Row Ids in different sheets. If it there, then there should be something which is shared among all the sheets.