文档Convert an anonymous account to a permanent account指出了该过程的3个步骤,但是步骤2似乎违反了步骤1。
- 用户注册后,请完成用户身份验证提供者的登录流程,最多可以(但不包括)致电 Auth.signInWith方法。例如,获取用户的Google ID令牌, Facebook访问令牌或电子邮件地址和密码。
- 获取新身份验证提供者的AuthCredential:
var credential = firebase.auth.FacebookAuthProvider.credential( response.authResponse.accessToken);
- 将AuthCredential对象传递给登录用户的链接方法...
我的问题是关于:步骤2。 response
仅在调用步骤1所说的Auth.signInWith
方法之一的之后存在不要做。如何将匿名帐户与oAuth帐户关联?
答案 0 :(得分:1)
文档所说的是,在步骤1中,您应该不要使用Firebase登录。步骤1的意思是,您应该与提供者登录(即Google,Facebook,Twitter),然后获取提供者令牌,然后链接提供程序令牌到现有Firebase匿名帐户,或使用提供程序令牌使用Firebase登录。重要的是文档所引用的令牌来自提供程序,而不是Firebase。
您没有指定打算使用哪种语言/平台,但这只是Dart / Flutter的示例:
GoogleSignInAccount googleUser = await _googleSignIn.signIn();
// Get the provider auth token
GoogleSignInAuthentication googleAuth = await googleUser.authentication;
FirebaseUser user = await _auth.currentUser();
// Check if the user has signed in as anonymous
if (user != null) {
// Use the provider auth token to link the anonymous account
await _auth.linkWithGoogleCredential(
accessToken: googleAuth.accessToken, idToken: googleAuth.idToken);
} else if (user == null || user.email == null) {
user = await _auth.signInWithGoogle(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
}