It was happening even in new responsive engine.
Hi guys, best way to load content these days is with backend workflows. Let the server handle all the processing power. Essentially, when you use “Do a search for” on front-end, it does the work in client browser, and hogs resources other users could be using.
Also, never have a “do every 5 seconds” event if you want to scale. Those actions are not viable, unless there is a feature to turn them on/off at desired times. I use this event for a resend timer, and that’s about it. Use event triggers.
Hope this helps.
It seems opposite of what I have read so far. Can you please point to some resource which talks about what you say?
Can you elaborate more on how to go about it? I have a repeating group in which I want to show the data. You are suggesting not to do a ‘search for’ but use a backend workflow. How to use backend workflow? How will repeating group get filled up?
If you “Do a search for” in a front-end workflow, you can SEE ALL THE DATA in that table (which you’re allowed to see per privacy rules), unless you setup constraints. Even if you setup constraints, you are still doing that search for all things ON THE BROWSER. Which would be defined as “front-end”. A backend workflow in my example would be you sending an event to a backend workflow (api, change of thing, etc), and return ONLY what is needed back. They cannot view anything except the returned values you give them from the backend API. You can constraint in the backend, and the user cannot view other things.
My menu, as an example. The items and links can be public, doesn’t matter cause if they go to a link that they shouldn’t go to, the page itself will block them. Either way, we still don’t want to show those links right?
Instead of using privacy rules, you can just make all links 100% private to regular users, but the API can and will still return whatever links I want to show them. If I did a “Do a search for Links”, nothing would show up.
Hope that makes sense! haha, in a little hurry atm, so if I need to further explain, let me know.
Can you please point to a documentation or thread that confirms this? From what I have read so far, this is not true.
Also, to read things via API is much more cumbersome, and we lose all the features of auto-update of data on the page as we are reading the data from API manually, instead of letting Bubble figure out the job of keeping connection alive.
@mghatiya and @gianluca1 - Gianluca1 mentioned that BDK is not the issue here. I’m a huge BDK fan, but how sure are we that the issue doesn’t like with BDK? It doesn’t seem like this is an issue on mobile web at the moment, right? Has anyone messaged with Gaurav about this?
Hi, I spoke with Gaurav and he assured it is not possible that the problem is caused by the BDK wrapping as it is web-view like a normal browser. I paste here below his comments on this topic.
Let me explain a bit about the architecture… The native app wraps the bubble app means there is a browser inside the native app
The content in the browser e.g. how the page displays, how the page refreshes is not and rather cannot be controlled by the wrapper. The browser (known as webview) is provided by the iOS / Android
By the way sometimes the data update in bubble doesnt happen on browsers too in my experience. There have certainly been times when I’ve experienced this on my desktop. Most of times it is after several minutes of inactivity. Maybe bubble stops refreshing / the bubble’s realtime-database data update connection is disconnected by server after few minutes of inactivity
We are facing this issue; likewise, it’s random and usually happens from 8-10pm SGT. I suspect it’s due to most bubble users being in America and that timing is the morning peak hours. We will be trying @mghatiya method!
@aj11 who had suggested that method originally has suggested a tweak of that method here as the old method is not working: RGs & "Do a Search for" not updating without refresh today 3 - #14 by aj11
Although I tried both of the methods and are not working for me, I suppose it may work for some.
Has anyone solved this yet? Facing this issue with my native app on iOS (BDK wrapped). I dont’ believe it’s a BDK issue since it was working fine on BDK preview app, and even on TestFlight app, but not on the live app.
I have an idea that I haven’t tested yet:
- Count all items in the list in database
- compare with the number of items in the repeating group.
- every time the database has more items than the repeating group, refresh the repeating group (not the page)
gonna try and let you know if it works.
in the meantime, if anyone else managed to solve this please do share
how do you plan to do this? There is no action in workflows for that, right?
thinking of calling “Display data in repeating group” again, gonna try tonight
From what I’ve read so far at various places display data doesn’t force refresh the repeating group. But probably if you are going to change the source from x to y and then back to x, it might work.
Do keep us posted on how it goes.
tried re-displaying data and as you mentioned it didn’t work. Might try changing source but I’m guessing it’ll cause a split second glitch that’ll make a bad experience. wondering if using Firebase will solve this issue.
One of my technical friends had told me that this is happening because Bubble’s websocket connection gets broken sometimes. So they need to introduce a workflow action which does “websocket repair”. Right now only action that does is page refresh.
You could move to Firebase, but then you would also need to take care of that websocket business I think. But I am not technically sound enough to know that.
I looked into the firebase setup and concluded life is too short to take that route.
Just managed to solve the problem in a super hacky way tho
inspired by what you mentioned (changing source), i used clear + display workflow, except using clear RG workflow + display data in RG doesn’t do the job, so i added a few steps in between to make it less weird from user’s pov. that Html element that i’m showing is a loading animation gif, and the pause action runs for 200ms
tried this on my native app on 2 iPhones and it works!!
Interesting. Glad that you got it worked. Will try it out sometime.
Hi @mghatiya, @gianluca1, @sina
I think I may be experiencing a similar use. Since you have some experience on this issue I hope you could point me to the right direction to have it resolved.
I’ve set up a ‘Do when condition is true’ event which triggers at a certain date/time. In the workflow it creates a new thing in a database table. The problem is that I need to manually refresh the page AFTER this certain date/time has passed in order to have the workflow create the new thing. I’ve tried adding a Go to page and a Refresh page in the workflow, but that didn’t work. I still need to manually refresh the page.
This of course isn’t doable. I’m still building the app so no real harm is done yet, but I need to resolve this before I’m going to have the app wrapped.
I’ve also tried setting up a similar workflow in the backend, but then even after a manual page refresh nothing happens. No new thing is being created in the database table. So therefore I’m focusing on the ‘Do when’ workflow on the page since at least I know for sure the trigger works. Now I only need to have the workflow create the new entries in the database automatically without me needing to refresh the page first.
Could any of you perhaps give me some advice based on your experience on how to solve this issue?
Hi, if I understand correctly, yours is not a problem of a page not displaying updated data. It is instead a matter of an idle page not firing a WF that depends on time AND on the user doing a certain action.
Can you provide more details on the event that should trigger the creation of a new thing?
Depending on what you want to achieve, you might solve with:
- a backend WF
- a countdown like Timer / Stopwatch / Countdown Plugin | Bubble
- an idle detection like UX tools (bdk) Plugin | Bubble
Thanks for your reply.
I’m now trying to set up a backend workflow. This post from @romanmg got me triggered:
This pretty much exactly describes what I’m experiencing. I hope I can sort it out with a backend workflow, still working on it.