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

时间:2016-11-06 23:25:06

标签: angular firebase firebase-realtime-database firebase-authentication angularfire2

我已成功以匿名方式登录用户并使用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)=> log facebook / google => fb user(uuid 2)

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

你知道怎么用AngularFire2做这个吗?

由于

1 个答案:

答案 0 :(得分:0)

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