I have a problem with my Sign-in Register Screen

Hi, I set up my Sign In for my app a while ago and all was working fine until yesterday when I decided to add colour to my message Labels. After testing to see how the colour would look, I noticed that my Register Screen no longer worked. (ie. no mew details are being added to my Sign In Google Sheet) I removed the colour blocks and it still does not work. I can’t seem to figure out what would have caused this as it was only text colour being added. :thinking:

My Sign In database is created using Google Sheets.

Can anyone see what has caused my blocks to fail? Again, I have block-blindness

Here is the link to my app:

https://x.thunkable.com/copy/84171602c4974fea9105d5fde46b5829

Here are my blocks:

Andos.

  1. Does the new row get added to your Google Sheet when you preview in a browser?
  2. Does the new row get added to your Google Sheet when you test in Thunkable Live?
  3. What happens if you add a Wait block right before the navigate block and set it to 1 second?

We won’t be able to test your project without you sharing your Google Sheet.

Edit: it looks like you’ve changed your Google Sheet (added columns) but didn’t refresh the create row block. Delete it and re-add it to the project. Because this is what I see:

And if I reselect the spreadsheet name in the create row block, it shows four column names instead of the two that you have in the screenshot above.

I just did notice an if statement in the Pwd_Length function that could be implemented into the parent if statement as an if else I would suggest you do this to make less confusing code and give you space for an error message that could tell the user that an error has occurred.

Hi, @tatiang,

There is no new row added to my G Sheet in my browser,

No new row is added to my G Sheet when I test in Thunkable Live

There is no change anywhere by adding a “1-second wait block” just before the “navigate block”

@tataing, where did you get your blocks from? These are not the blocks that I sent to you. (below)

I sent you these blocks (below):

My block are already displaying correctly in relation to my G Sheet. (below)

Screenshot 2022-02-28 15.46.46

Ah @tatiang, I see what you have done. You have used the wrong “Source” from my sources. The one you used is not a G Sheet. You should used the one further up in the Source List which is a G Sheet with only 2 columns.

Andos.

Hi @errorunknown, I am not sure quite what you mean. I have laid out the blocks in a way that I understand. Could you give me an example? I am still trying to properly grasp all this.

Andos.

You would need to share the Google Sheet with me and I would have to add it to my copy of your project. These are the only data sources I see:

image

You made your error text (StatusLabel2) transparent so it’s very hard to see what’s going on. Once I change that, I can generate an error because I don’t have the Firebase API set up at the moment in your project.

When you SignUp, what is the value of the green error block? Or do you see “Successfully registered”? And if so, does that email address appear in your Firebase console?

In my testing with my Firebase authentication added, I can get it to create a row after I sign up. But the row is created in the local database, not in your Google Sheet (obviously).

These are the blocks I used, with some debugging label values to show the number of rows before and after the create row block fires:

Can I ask why you’ve chosen to expose your user base to the public internet? Was that intentional and if so, do your users know you are making their use of your app public knowledge? I ask as storing PII in a public location such as a google sheet is not good practice, especially if you plan to add any other identifiers to those rows.

I’m not a fan of using Google sheets to store important info, though it is useable for that purpose. I don’t mean to sound harsh here, but instead to provoke thought on my questions above. As developers, we should always try to be responsible with data and the way we construct our apps.

1 Like

Instead of using the if block then in the else statement use a different if statement you should click on the gear and add an if else statement then move what was in that in bedded if statement into the if else code and input your trigger for the code inside of the if -else statement trigger removing a block but keeping the same functionality also it would be a pain in larger statements like these.

Hi @tatiang, how do I share my G Sheet with you directly? Google usually requires an email address.

Andos.

Hi @tatiang, I have found my dummy sign up record in my Firebase. Is it possible that because it already exists in my Firebase, that this might be the reason why it’s not showing up when I delete my dummy signup from my G Sheet and then re-signing up again via the Live Test.?

I usually see “Successfully registered”

Where have I made the “error text (StatusLabel2)” transparent?

Hi @jared, is my user base showing on the internet? Have you accessed it? I am obviously concerned because when I eventually “go live” I certainly wouldn’t want my members info out there!

I thought that when my members signup in Firebase their info would be safe. I use the GSheet part to reflect the Firebase so that I can add a personal Google Sheet for each member’s use at a later date. This GSheet is not intended to be public. It is only to link each member to their own personal GSheet tab.

There are currently no members signed up to the app yet. I am currently using my own personal dummy email addresses which I set up for testing purposes.

Am I doing something wrong here too?

Andos.

Hi @tatiang, your suggestions were correct.

I have now realised what you were referring to. Yes, my error label (StatusLabel2) colour “was” set to transparent. I have now corrected this and used the “visible true/false” blocks instead. That part now works beautifully.

Your suggestion prompted me to check my Firebase and not just my G Sheet. I found that my dummy signup entry was already present in there. Which explained why no entry was also being displayed in my GSheet.

Problem solved!

Many thanks for your assistance. It was greatly appreciated!

Andos.

1 Like

ahh. that makes a bit more sense. Are the sheets publicly shared by default, if not and you’re not using some kind of admin server setup to access the sheets, once the app is live your users may have a hard time communicating with the sheets.

It’s my understanding that to use an app that users a google sheet, the sheet must be made publicly available on the internet as we aren’t passing oAuth tokens to access the sheet and we don’t share admin service account credentials with the app either. Now, that can be worked around by invoking some kind of oauth dance with google, totally possible and i’ve done it. this would return an auth token for the user to then go ahead and access sheets without having to share them on the internet.

I could be totally wrong here and would be happy to hear any different. :slight_smile: I also want to say, it’s not that what you are doing is wrong necessarily. It’s just not how i’d go about doing things and i wanted to spark some conversation around using google sheets for data storage.

If you have them on firebase already, why not use firebase for all the data storage? Do you use google do complete calculations on your data in the sheet?

Hi @jared, on the Firebase sheet, would I be able to add a column for me to manually enter a Google tab url? If so, how would I do this?

I do not have any calculations on my AvLogUserEmail Google Sheet.

The AvLogUserEmail GSheet was not made public by defaullt. The sheet will again be made “Private” and will only be shared with my users (members) who are already part of my Aviation Group. There are no plans to add new members at this current time. But, in the future, who knows!

Once my members have registered to the app. My plan is to close of the app so no-one else can sign up or, I shall find a way to limit the number of users that can sign up after all the members have signed up. I have no intention to register this app on the App Store or Play Store. This app is to be a “private” members only app specifically for my Group.

Lastly, how would you have done this?

Andos.