Adalo跨屏幕共享会话数据咨询:无登录会话式应用
解决方案:Adalo + Supabase 无登录会话跨页数据共享
针对你遇到的跨页数据共享问题,结合Adalo和Supabase的特性,有三个直接可行的方案:
方案1:利用Adalo全局自定义状态传递
- 第一步:在Adalo中创建全局自定义状态,添加
session_id、location_name、from_date、to_date这几个字段,类型匹配数据库对应字段。 - 第二步:在搜索页(页面1)的SEARCH按钮动作中,完成以下操作:
- 生成随机
session_id; - 将
session_id和用户输入的location_name、from_date、to_date存入Supabase的UserSession集合; - 同时把这些字段的值同步更新到全局自定义状态中。
- 生成随机
- 第三步:在预订页(页面5)直接将组件的数据源绑定到全局自定义状态的对应字段,即可实时展示会话数据。
- 注意:自定义状态仅在当前会话有效,用户关闭页面后数据会清除,符合无登录场景需求。
方案2:通过URL参数传递session_id并查询Supabase
- 第一步:搜索页点击SEARCH按钮时,生成
session_id并存入UserSession集合,然后跳转到预订页时,将session_id作为URL参数附加(比如跳转链接设置为/page5?sid=[session_id],其中[session_id]绑定你生成的变量)。 - 第二步:在预订页添加**“获取URL参数”**动作,提取参数
sid的值并存储到页面级自定义状态中。 - 第三步:在预订页添加Supabase数据查询动作,筛选条件设为
session_id = [提取到的sid值],查询UserSession集合的对应数据,将返回的字段绑定到页面展示组件上。 - 优势:即使用户刷新预订页,只要URL参数保留,就能重新拉取数据,适合需要短暂持久化会话的场景。
方案3:使用Adalo本地存储缓存数据
- 第一步:搜索页点击SEARCH按钮时,除了存入Supabase,还执行**“设置本地存储项”**动作,键名设为
active_session,值为包含所有字段的JSON字符串(比如{"session_id":"xxx","location_name":"xxx","from_date":"xxx","to_date":"xxx"})。 - 第二步:在预订页加载时,执行**“获取本地存储项”**动作,读取
active_session的值,解析后将字段内容绑定到页面组件。 - 特点:数据存储在用户本地,跨页传递不受跳转方式限制,会话内有效,清理浏览器缓存会丢失数据。
内容的提问来源于stack exchange,提问作者Kuntal Chowdhury
相关产品推荐
相关产品推荐

