[Resolved] Import date from Dropsource Android/IOS to Bubble


#1

Hello,

I am trying to give the user the possibilty to choose a date, and to record it as a date in Bubble.

That’s what I did for Android

I set up page variables
Year_string
Month _string
Day_String
Hour_String
Min_string

Date format date

Show time-picker
set the respective variable to the timer picker value
Show date picker
set the respective variable to time date picker value
Create a date from part
based on the pages variable
Set variable date from the date created

and no error message …but the API Endpoint/WF just does not work.

I think I am making a mistake with the Page variable format, if yes what is the correct format?
but I am bit lot, because even when I generate a current date/time object …it does not work as well

Edit : for Android it is solved, I set the different variable on format date.
Second issue, I tried to send a date range to bubble, via the API, it did not work at all, and block the API

For IOS, I am still stuck, have two time-picker the output is format date, I try to link to 2 fields in the API, format date as well…and does not work

Many thanks for your help


IOS Time Picker, result in DB is alway 1970,11:PM in the DB
#2

As discussed in the in-app support I think using the network log to compare what the app is sending to whatever format the Bubble endpoint is expecting will help here. Hopefully we can update here when that’s figured out in case it helps anyone else…!


#3

How did you pass the date through to Bubble?

Did you pass it as a string?

Or a date object?

Every time i run my app and POST the date it crashes and I’m trying to sort out why.


#4

On the Object/String datatype topic, You can set this however you would like but for simplicity sake, I’d send it as string parameter(s). You can use the network activity log to verify the structure of the data as well and set up Bubble to expect it the way you want it.


#5

I try to bind the String variable to a Date type thing in the api body (from bubble) but it’s not working.

I can only bind Date dropsource variable to a Date bubble type thing.

How can I receive a String inside of Bubble, and translate that String to a Date type, inside Bubble?

This way I can send a string and have it still saved accurately as a Date inside of Bubble. Thanks!


#6

Hi @justincrabbe,
Simply create a page variable of type date and bind it to your api date field.
Then in the Date Picked event, use a Create Date from parts action to create a date object from the picker.
Then set this value to your date page variable.
Finally make your api call.


#7

That works for me, but it keeps crashing the mobile app in testing.

Bubble is receiving a Date and I’m passing a Date exactly as you suggest.

image


#8

Maybe its a different thing crashing the app.
I just tried it and it works for me without any crash


#9

Very strange.

I tried multiple times to set it Date/Date, even tried String/Date (didn’t work).

When I remove the bind between Date to Bubble api, it works fine, put it back in place, the app crashes.


#10

@justincrabbe if you want to include a Build ID here and some instructions on how to generate the app crash, I can see if I can find any information on what’s going wrong here. if you need to pass me a login, you can send a personal message to me here.


#11

All sent to you @wade any chance you had a look?


#12

I downloaded the source code and ran your app in Android Studio. This is a way to get deeper debugging information on your project. Following your instructions, I created the the crash. I’m seeing that there might be an issue in the date portion of the request, potentially with the timezone indicator… here’s the log data I found.

This is where something isn’t as expected. You might want to confirm the data there is what you expect it to be. You can test by setting up some temporary test labels here to the values going in the request so you can check that they are what you’re expecting in your Swagger/Backend.

@cchute have you seen an error pertaining to a time zone indicator before and have any guidance beyond what I shared here?


#15

Hi Justin,

We’re noticing that the issue spurs from the date parser trying to read an invalid number from a wrongly formatted date/string. Looks like you’re doing a lot of assignments to local storage (page/device variables) and not keeping the date format consistent while also making some redundant assignments that get overwritten and never used before they do.

You’ll want to focus on that area step by step. Try to remove the logic and step through and test at each spot. It can get easy to over complicate logic in these areas. Try to break this down to each step and test little by little. A little trick here is that you can use labels and set their text value to create a way to test what the information is for your variables to debug as you go. Then when you’re happy with the outcome, you can remove the temporary label from the app page.


#16

Hi Wade,

I assign all of the different parts of a date and time to individual variables.

Then I create a date from parts using those variables.

Then try and send the date object created to bubble.

I have tried both the date (as date) and date (as string) to no avail.

When I try and bind a String Date device variable to the Bubble api end point which is supposed to receive a date object it cannot be bound:

image

How do I modify the time zone indicator inside of a variable or otherwise fix this issue?

Others indicate it’s a matter of keeping it as date-date which i’ve done but it won’t work for me. Same with String date, because the receiving side needs to receive a proper date object.


#17

Hi Justin,

I have done this successfully:

I select the date and assign each part of the date selection to variables, append to strings to get one variable with the complete date, and send them off to bubble.

It was a little tricky to do it, but it does work. Perhaps these screenshots can help you

setting values and appending strings:

Sending the final birthday string variable to bubble.
image

Birthday when it is sent to the api endpoint

Here is the data type in bubble
image

The end result is this:

You probably did already, but double check and then triple check you exposed all endpoints, synced the most recent swagger spec file and that you deployed your settings in bubble.

I was totally unaware of the Create Date from Parts function…, That would have saved me a lot of time, so I suggest you go with Sean on that account, but maybe this gives you an idea of how the general set up for this sort of thing could look like.


#18

My issus is I need to format it as a Date (vs. text) inside of Bubble to be able to use the date actions…

If i keep as text format when i pass the string it will save as text of course but can’t do anything else or manipulate the date using normal date functions.


#19

Maybe you can use the “make changes to a thing” in bubble and in that way reformat from string to date format. I don’t know though, just guessing.


#20

Hey @justincrabbe, i think i know what is causing your crashes. Its not about the date conversions as i’ve kept saying.
It’s actually a bug (i think) that i’ve just discovered in dropsource.
When you store a date object in a device variable and try to access it again it will crash your app.
Try saving it as a page variable as a date type and see if it works.


#21

To add on here as @seanhoots is hitting the issue head on and our Engineers are aware of this and looking into opportunities to work with date objects more efficiently, a solution that’s remained consistent would be to use the timestamp property of the date object for storing instead of the entire date object. Then when you require a date object in a later step in your app, you can create it with the use that time tamp to set it up properly.


#23

@justincrabbe… Have you tried Seanhoots suggestion in using a page variable instead of a device variable for your needs in this respect? Any change when you did that? Does your app still crash after you make this adjustment? If so, could you pass your Build ID and instructions that will lead me from app initial open to the crash?
[/quote]