Angularfire2 将匿名用户与 Facebook/Google 帐户合并

Angularfire2 Merge anonymous user with Facebook/Google account

我已经成功地使用Google/Facebook匿名登录用户。

user.service.ts :

loginFacebook() {
    this.af.auth.login({
        provider: AuthProviders.Facebook,
        method: AuthMethods.Popup,
    });
}
loginGoogle() {
    this.af.auth.login({
        provider: AuthProviders.Google,
        method: AuthMethods.Popup,
    });
}
loginAnonymous() {
    this.af.auth.login({
        provider: AuthProviders.Anonymous,
        method: AuthMethods.Anonymous,
    });
}

但我想做的是将匿名用户与 Facebook 用户合并。

因为现在发生了什么:
匿名用户 => uuid 1
匿名用户 (uuid 1) => 日志 facebook/google => fb 用户 (uuid 2)

所以我在同一个用户的数据库中有 2 个不同的 uuid。

你知道如何用 AngularFire2 做到这一点吗?

谢谢

登录匿名用户后,每当用户升级到 facebook/google 帐户时,请先尝试 link。调用 anonymousUser.linkWithPopup(facebookProvider)。这要么成功,要么抛出 facebook 用户存在的错误。在这种情况下,错误将包含 facebook 凭据。然后您可以 signInWithCredential(error.credential) 并手动将匿名用户与 facebook 用户合并(将数据从一个复制到另一个),然后您可以删除匿名用户。