Latest

Supabase|为应用添加邮箱登录

魔法链接登录 如果开发 Web 应用,魔法链接登录是一个不错的选项。 启用魔法链接登录无需在 Supabase 做任何格外配置,这是默认启用的选项。 邮箱验证码登录 使用 supabase.auth.signInWithOTP 启用邮箱验证码登录。 此时运行代码,Supabase 仍然会发送 Magic Link 链接。 根据官方文档显示,要发送一次性代码而不是魔法链接,需要修改电子邮件模板: 在 Supabase Dashboard 配置: 往下滑,找到「Magic Link」: 将 {{.ConfirmationURL }} 替换为{{ .Token }} 。
廖林

Vercel|创建 cron jobs 定时任务

设置定时任务之后,Vercel 会定时向指定端点发送 HTTP 请求,从而完成一些自动化工作。 关于 Vercel Cron Jobs 的几个关键点: * 只能通过 vercel.json 配置,不支持 Web 端配置。 * 只对生产环境生效。 * 只支持 GET 方法。 vercel.json 时间配置 Managing Cron JobsLearn how to manage Cron Jobs effectively in Vercel. Explore cron job duration, error handling, deployments, concurrency control, local execution, and more to
廖林

SwiftData|为 App 添加预设数据

想象一下,一个代办事项 App 需要提供标签功能,并且你想为 App 提供一些预设的标签供用户选择。 * 使用枚举来实现标签功能。这会导致用户无法创建自定义标签,因此枚举是写死的。 * 使用 SwiftData 实现标签功能 —— 这时候就需要为 SwiftData 生成预设数据。 SwiftData 创建预设数据的挑战 一种最简单的方法是,使用枚举来定义预设数据,并在 App 启动时检查是否有预设数据,如果没有就自动创建并添加 SwiftData。 这看起来很简单,但在实践中仍然存在一些困难。 CloudKit 导致的数据重复 如果启用了 CloudKit 云同步,当用户在同一个 Apple 账户的另一台设备安装,或者同一台设备卸载后再次安装时,由于 iCloud 数据同步存在延迟,会导致初始化程序创建重复的 SwiftData 数据。 因此,我们不能够简单的仅通过检查本地是否有数据来决定是否添加预设数据。 解决方案:需要同时检查 CloudKit 云端,仅在本地和云端均无数据时,才执行添加操作。
廖林

SwiftData|使用 ModelActor 存在数据更新延迟问题

问题案例 在 MONO 记账中,在账单详情页面修改账单的报销状态:待报销或已报销。修改之后,报销统计数据无法正确及时的更新(有时更新,有时不更新,结果不可测)。 排查发现原因如下: 1. 在 ReimbursementView 组件中,更新报销状态时只使用 Picker 组件,未显式调用 modelContext.save() 进行手动保存。 2. 统计数据在 ReimbursementViewModel 中计算,通过调用 actor 中的方法进行计算。 和 Task.detach 无关 既然在 ReimbursementViewModel 中,通过 Task.detached 在后台调用 actor 方法执行计算任务。如果不使用 Task.detached ,该问题是否仍然存在? 经过测试,即使修改为 Task,
廖林