FlutterFlow中如何判断Supabase用户认证方式并隐藏改密码按钮
最简实现方案:通过Supabase用户身份数据判断认证方式
Supabase的用户对象里自带identities数组,会记录用户的所有认证来源——Apple登录的用户,这个数组里会有一条provider为apple的条目。咱们就靠这个来做判断,步骤很简单:
1. 写个自定义函数判断是否是Apple登录用户
在FlutterFlow的自定义函数里新建一个函数,命名成isAppleUser,返回类型选布尔值,代码贴下面这个:
bool isAppleUser(User? user) { if (user == null) return false; // 扫一遍用户的认证记录,找有没有Apple的 return user.identities.any((identity) => identity.provider == 'apple'); }
2. 给修改密码按钮绑可见性条件
找到「修改密码」按钮,在右侧属性面板的可见性设置里选自定义条件,然后调用刚才写的函数:
- 直接把条件写成
!isAppleUser(currentUser)—— 意思就是只有非Apple登录的用户才显示这个按钮
额外提示
如果之前你手动在Supabase用户元数据里存过认证来源(比如加了auth_provider字段),也可以直接读这个字段判断,步骤和上面差不多,只是函数里改成读取元数据就行。测试的时候记得分别用邮箱和Apple账号登进去看看,确认按钮显示正常。
内容的提问来源于stack exchange,提问作者taber
相关产品推荐
相关产品推荐

