链接后,AngularFire 提供者的 uid 应该与匿名用户的 uid 相同吗?
AngularFire should a provider's uid be the same as an anonymous user's uid after they are linked?
我正在尝试 link 匿名用户的提供商。我可以分别登录。
var auth = $firebaseAuth();
auth.$signInAnonymously().then(function(firebaseUser) {...}
$scope.signInWithGoogle = function() {
var provider = new firebase.auth.GoogleAuthProvider();
auth.$signInWithPopup(provider)
.then(function(response) {
linkCredentials(response.user);
}).catch(function(error) {
console.error("Authententication failed:", error);
});
}
var linkCredentials = function(credential) {
if(credential) {
var credentials = credential;
}
firebase.auth().currentUser.link(credentials)
.then(function(firebaseUser) {
console.log("Anonymous account successfully upgraded", firebaseUser);
}).catch(function(error) {
console.log("Error upgrading anonymous account", error);
});
}
当我link使用电子邮件和密码创建一个帐户(即$createUserWithEmailAndPassword
)时,新创建的帐户的uid
是和匿名账号一样。
Google 用户的uid 是否应该与linked 后的匿名帐户相同?还是我在这里混淆了事情?提前感谢您的帮助。
当您 link 一个现有帐户的新提供商时,无论它是否是匿名的,相同的 uid 应该保持不变。但是,如果您尝试 link 一个已经 linked 到具有不同 uid 的现有 firebase 用户的提供者,您将收到一个错误,指出该凭证已经 linked 到另一个帐户。您似乎在上面做错了。在匿名用户登录有效注销之前的匿名用户后,您正在登录 google 用户。正确的做法如下:
您首先匿名登录。
然后您对当前匿名用户调用 linkWithPopup。
我正在尝试 link 匿名用户的提供商。我可以分别登录。
var auth = $firebaseAuth();
auth.$signInAnonymously().then(function(firebaseUser) {...}
$scope.signInWithGoogle = function() {
var provider = new firebase.auth.GoogleAuthProvider();
auth.$signInWithPopup(provider)
.then(function(response) {
linkCredentials(response.user);
}).catch(function(error) {
console.error("Authententication failed:", error);
});
}
var linkCredentials = function(credential) {
if(credential) {
var credentials = credential;
}
firebase.auth().currentUser.link(credentials)
.then(function(firebaseUser) {
console.log("Anonymous account successfully upgraded", firebaseUser);
}).catch(function(error) {
console.log("Error upgrading anonymous account", error);
});
}
当我link使用电子邮件和密码创建一个帐户(即$createUserWithEmailAndPassword
)时,新创建的帐户的uid
是和匿名账号一样。
Google 用户的uid 是否应该与linked 后的匿名帐户相同?还是我在这里混淆了事情?提前感谢您的帮助。
当您 link 一个现有帐户的新提供商时,无论它是否是匿名的,相同的 uid 应该保持不变。但是,如果您尝试 link 一个已经 linked 到具有不同 uid 的现有 firebase 用户的提供者,您将收到一个错误,指出该凭证已经 linked 到另一个帐户。您似乎在上面做错了。在匿名用户登录有效注销之前的匿名用户后,您正在登录 google 用户。正确的做法如下:
您首先匿名登录。
然后您对当前匿名用户调用 linkWithPopup。