Firebase Auth:链接两个预先存在的帐户

时间:2017-12-26 16:39:53

标签: firebase firebase-authentication angularfire2

我读过这个:

  

"帐户关联只能在新的时间点执行   帐户已创建。换句话说,连接两个是不可能的   预先存在的帐户。"

它仍然是真的吗?

我喜欢这个工作流程:

  1. 用户登录应用程序并使用他的Anonymous uid;
  2. 然后用户登录(用户以前注册过),显然有他的uid;
  3. 现在,当用户登录logOut时,我想给他以前的Anonymous uid,而不是新的。 这可能吗?

2 个答案:

答案 0 :(得分:2)

如果您想将匿名用户链接到现有帐户,则无法进行此操作。它会给你一个错误:'auth / credential-already-in-use'。您必须手动合并两个帐户。

答案 1 :(得分:0)

可以将匿名帐户转换为永久帐户。您可以通过将用户登录到新帐户,获取其凭据然后使用它与匿名帐户链接来实现,如documentation所述:

auth.currentUser.link(credential).then(function(user) {
  console.log("Anonymous account successfully upgraded", user);
}, function(error) {
  console.log("Error upgrading anonymous account", error);
});

但是当用户退出时,他无法恢复之前的uid。因为匿名帐户是临时性的,如documentation所述:

  

您可以使用Firebase身份验证来创建和使用临时身份验证   要使用Firebase进行身份验证的匿名帐户

我认为这是有道理的。因为如果用户是匿名的,这意味着他没有身份证明。所以你以前无法分辨谁在使用那个uid。