我最近开始使用来自 Firebase 的 Supabase,我喜欢它。我倾向于完全迁移,因为它的 Postgres 数据库我认为这是一个优点。但我找不到解决方案的一件事是如何通过将匿名用户链接到 Google 帐户将其转换为非匿名用户。
我已经使用 google_sign_in 设置了 Google 登录,并且匿名登录可以正常工作,但我对如何合并两者感到困惑。
我启用了手动链接,但从匿名用户运行:
await supabase.auth.linkIdentity(OAuthProvider.google);
抛出:
AuthException(message: Unsupported provider: missing OAuth secret, statusCode: 400)
我无法使用
signInWithIdToken()
将匿名帐户链接到谷歌,因为它会从头开始创建一个全新的用户。需要保留用户 ID,因为可能已经有数据了:
...
// BAD: Creates new user with new id
final supabase = Supabase.instance.client;
return supabase.auth.signInWithIdToken(
provider: OAuthProvider.google,
idToken: idToken,
accessToken: accessToken,
);
我到底在哪里获取 OAuth 密钥?对于 Google 帐户,我应该使用
signInWithOAuth()
而不是 signInWithIdToken()
吗?感谢大家的帮助。
你曾经让它工作过吗?我与不和谐提供商遇到了类似的问题