I am having trouble with the blocks of a login screen in which I have provided an Airtable spreadsheet which has a list of Authorized Numbers who are authorized to login via OTP.
Now, I want that if the entered number in the textbox is an item in the column (list) in the table, then it should be able to get the OTP, but it is not working.
Here are the blocks -
Do you leave any empty row and column so your spreadsheet
No, nothing is left blank. There are two columns - “Authorized Numbers” & “Names” which are fully filled.
Hello. I have created a simple Phone Sign In through Firebase Authentication.
The FirebaseAuth only sends the OTP to the number if its listed in the Airtable Spreadsheet.
It is working fine till here. It sends OTP to only the listed numbers.
Now, I have assigned names to all the Numbers by creating another column so that the name and number of the authorized person is in the same row. And to get the value of the “Authorized Names” column, I have used these blocks across 2 screens using TinyDB -
Sign In Screen -
I am still not getting the Authorized Name in the Greeting Label in the Home screen.
I see that you are calling TinyDB.store value just before going to the Home screen.
Could you please insert a label, and check if the phone number is actually getting saved before moving on to that screen?
If the phone number does not get saved, your home screen will do nothing.
I faced an issue similar to this when I first used TinyDB - storing a number is probably done asynchronously. Which means, the Home Screen may be getting called before TinyDB has the time to store the value.
If this is indeed the case, you can use dictionaries. Just pass on the dictionary itself to the Home Screen, and store the value in TinyDB on the Home Screen instead.
Can you please show me the blocks for that?
The blocks for dictionaries?
Or passing it to Home Screen?
Here are 2 screens that just call each other when you press the back button
Obviously, if you want to pass along a dictionary, you don’t use the “join” block. Join would convert anything into text format.
But I want to transfer the information to another screen on Firebase Login Success, not on Screen Initialization.
A simpler way of doing it,
Then just put the blocks in the Firebase.LoginSuccess instead.
I was only demonstrating how to use the blocks, and the dictionary.
I’m guessing, maybe erroneously, that you’re not just new to Kodular, but to programming as well. Consider playing around with labels. Setting the label text to variables will show you what value the variable has been set to. Extremely useful for debugging.
global otp_phone should be blank text, right?
Yes and afterwards set it to call tinydb get value when screen initialize
I am having the same issue with another screen, but this time I am not getting the values from the table and so the procedure that should follow it is not working.
here is the video of the problem:
here are the blocks:
What I would do is when screen initialize to call spreadsheet column fee and then when got column save it to a global list, then when proceed click depending the spinner selection I would select item from global list - specific index
I tried another way to solve my problem by not using spreadsheet to store my values and rather making and storing lists in variables.
I used an extension (ListView with Checkbox), because that is what I need, but now I am getting BAD ARGUMENT.